android – 在没有Camera API的情况下,只在HTML输入的Phonegap应用程序上使用相机
作者:互联网
是否可以在没有Camera API的情况下通过HTML输入从相机中的相机获取照片?
脚本
我开发了一个应用程序并通过Phonegap封装它(Build)
用户可以使用html文件输入提交照片.但是没有选择从相机拍摄新照片,只有画廊和文件(以及任何其他存储应用程序,如驱动器或Dropbox,如果是这种情况).
我想启用相机选项,但没有PhoneGap的Camera API.
解决方案
我尝试了以下解决方案但没有成功:
1.“捕获”属性(从Raymond Camden post开始)
使用此方法,您所要做的就是添加“capture”属性,如下所示:
<input type="file" capture="camera" accept="image/*" id="JustChooseAnID">
Raymond解释说,使用这种方法你不需要使用PhoneGap的Camera API,因为谷歌开发了这个选项,并在Google IO presentation中显示它,根据谷歌开发者和雷蒙德,它的工作原理.
但是……不适合我.
2.配置Phonegap以询问相机的许可(从Jorge Lizaso’s question开始)
“也许相机选项没有显示,因为你的应用没有适当的权限”
在上面的问题中,提到了4种间接询问和接收使用相机的适当权限的方法.
我已经尝试了方法2和4,虽然我的应用程序现在要求相机权限并且我允许它正确,当我使用文件输入时,所有选项都被呈现(如图库和文件),但没有相机.
3(和1).使用最新版本的webkit和Crosswalk来确保解决方案#1
由于我的android webview可能会过时(并且与解决方案#1不兼容),我决定在我的应用程序中包含可能的最佳webview:the latest version of Google Chromium.
但是……再没有成功.
1,2和3组合在一起
结果:没有…成功.
解决方法:
是的,有一个解决方案,无需Cordova / PhoneGap的Camera API.
由于我所知的原因,CocoonJS中使用的webkit(名为WebView)比phonegap的Crossswalk更优化和调整为HTML5应用程序(请,我与Cocoon无关).
我完全丢弃了我的Phonegap config.xml设置并尝试了Cocoon builder.我使用解决方案#1(文件输入中的捕获属性)并通过Cocoon添加了这些插件:
<cocoon:plugin name="cordova-plugin-camera"/>
<cocoon:plugin name="cordova-plugin-media-capture"/>
<cocoon:plugin name="cordova-plugin-media"/>
<cocoon:plugin name="cordova-plugin-file"/>
<cocoon:plugin name="cordova-plugin-device"/>
重要的是要注意我刚安装这些插件以获得所需的权限,但我根本不使用它们.
可能更有经验的开发人员会有更好的解决方案,但就目前而言,这是我找到解决此问题的最佳方法.
标签:phonegap-build,android,ios,cordova,camera 来源: https://codeday.me/bug/20190927/1823929.html