如何在 Android 上运行的 Web 应用程序中从 CamScanner 或 Office Lens 获取文件?

Posted

技术标签:

【中文标题】如何在 Android 上运行的 Web 应用程序中从 CamScanner 或 Office Lens 获取文件?【英文标题】:How can I get a file from CamScanner or Office Lens in a web app running on Android? 【发布时间】:2015-09-11 03:06:21 【问题描述】:

我有一个 Angular 网络应用程序,可以通过 android 上的 Chrome 访问。我可以使用:

<input type='file' accept='image/*' capture>

(或具有 ng-file-upload 的类似 accept 属性)直接从相机应用程序将图像上传到服务器。很酷。但我希望用户能够选择,例如,CamScanner 或 Office Lens,而不是相机应用,这样他们就可以在上传之前格式化文档。

我玩过accept 属性,但似乎无法让这些应用程序显示在 Android 的“使用完成操作”应用程序列表中。

想法?

【问题讨论】:

我认为唯一的方法是在 android 应用程序下使用 javascript 接口,只有在那里你可以做任何你想做的事...... 有一个名为 CameraPreview github.com/mbppower/CordovaCameraPreview 的 Cordova 插件,它允许您在不打开实际 cameraapp 的情况下将相机预览导入您的应用程序。在自述文件中,您可以看到生成的图像几乎可以做任何事情 【参考方案1】:

目前,没有办法做到这一点,除非你正在开发一个独立的 APP。

元素<input type="file"/>的浏览器行为仅依赖于处理照片和视频的默认APP。

【讨论】:

【参考方案2】:

你看过这个吗?

https://developer.chrome.com/multidevice/android/intents

链接中的相关示例:

这是启动 Zxing 条码扫描器应用的意图。它遵循以下语法:

intent:
   //scan/
   #Intent; 
   package=com.google.zxing.client.android; 
   scheme=zxing; 
end;

要启动 Zxing 条码扫描器应用程序,您在锚点上对 href 进行如下编码:

 <a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>

所以对于camscanner,包是

com.intsig.camscanner

所以在上面的例子中使用它而不是 com.google.zxing.client.android。

【讨论】:

这看起来是朝着正确方向迈出的一步,但我看不到将应用程序的输出(扫描的图像)上传到服务器的方法。我错过了什么吗?

以上是关于如何在 Android 上运行的 Web 应用程序中从 CamScanner 或 Office Lens 获取文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React Native 中实现 Google 地图以在 Web、Android 和 iOS 上运行?

如何从 IDE 在移动 chrome 上运行 Flutter Web

如何使用 Javascript/PHP 从 Web 应用程序打开移动应用程序(Android 或 iOS)

“你需要合适的加载器”,使用 react native 和 expo。应用程序无法在 web 上编译,但在 android 上运行

检测在 Android 股票浏览器上作为主屏幕应用程序运行的 Web 应用程序

Web Worker 是在主 ui android 线程还是单独的线程上运行?