在Phonegap应用程序上使用相机,只有HTML输入,没有Camera API

Pau*_*ica 9 camera android ios cordova phonegap-build

是否可以在没有Camera API的情况下通过HTML输入从相机中的相机获取照片?

脚本

我开发了一个应用程序并通过Phonegap封装它(Build)

用户可以使用html文件输入提交照片.但是没有选择从相机拍摄新照片,只有画廊和文件(以及任何其他存储应用程序,如驱动器或Dropbox,如果是这种情况).

我想启用相机选项,但没有PhoneGap的Camera API.

解决方案

我尝试了以下解决方案但没有成功:


1."捕获"属性(来自Raymond Camden的帖子)

使用此方法,您所要做的就是添加"capture"属性,如下所示:

<input type="file" capture="camera" accept="image/*" id="JustChooseAnID">
Run Code Online (Sandbox Code Playgroud)

Raymond解释说,使用这种方法,你不需要使用PhoneGap的Camera API,因为谷歌开发了这个选项,并在Google IO演示文稿中展示了它,据Google开发人员和Raymond说,它可以运行.

但是......不适合我.


2.配置Phonegap以询问相机的许可(来自Jorge Lizaso的问题)

"也许相机选项没有显示,因为你的应用没有适当的权限"

在上面的问题中,提到了4种间接询问和接收使用相机的适当权限的方法.

我已经尝试了方法2和4,虽然我的应用程序现在要求相机权限并且我允许它正确,当我使用文件输入时,所有选项都被呈现(如图库和文件),但没有相机.


3(和1).将最新版本的webkit与Crosswalk一起使用以确保解决方案#1

由于我的android webview可能会过时(并且与解决方案#1不兼容),我决定在我的应用程序中包含可能的最佳webview:最新版本的Google Chromium.

但是......再没有成功.


1,2和3组合在一起

结果:没有...成功.

Pau*_*ica 3

是的,有一个解决方案,不需要 Cordova/PhoneGap 的 Camera API。

由于我不知道的原因, CocoonJS中使用的 webkit (名为 WebView+)比phonegap 的 Crossswalk 对 HTML5 应用程序进行了更优化和调整(请注意,我与 Cocoon 无关)。

我完全放弃了 Phonegap config.xml 设置并尝试了 Cocoon 构建器。我使用了解决方案#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"/>
Run Code Online (Sandbox Code Playgroud)

需要注意的是,我只是安装这些插件以获得所需的权限,但我根本没有使用它们。


也许,更有经验的开发人员会有更好的解决方案,但就目前而言,这是我发现解决此问题的最佳方法。