在只有 HTML 输入但没有摄像头 API 的情况下在 Phonegap 应用上使用摄像头
Using camera on Phonegap app with only HTML input, without Camera API
是否可以在 phonegap 应用程序中仅使用 HTML 输入而不使用相机 API 从相机获取照片?
场景
我开发了一个app,通过Phonegap进行封装(Build)
用户可以使用 html 文件输入提交照片。但是没有从相机拍摄新照片的选项,只有画廊和文件(以及任何其他存储应用程序,如驱动器或保管箱,如果是这样的话)。
我想启用摄像头选项,但没有 PhoneGap 的摄像头 API。
解决方案
我已经尝试了以下解决方案但没有成功:
1. "capture" 属性(来自 Raymond Camden post)
使用此方法,您所要做的就是像这样添加 "capture" 属性:
<input type="file" capture="camera" accept="image/*" id="JustChooseAnID">
Raymond 解释说,使用这种方法你不需要使用 PhoneGap 的相机 API,因为 Google 开发了这个选项并在 Google IO presentation 中展示了它,并且根据 Google 开发者和 Raymond,它有效。
但是..不适合我
2。配置 Phonegap 以请求相机的许可(来自 Jorge Lizaso's question)
"Maybe the camera option is not showed up because your app doesn't have the proper permissions"
在上述问题中,提到了 4 种方法来间接请求和接收使用相机的适当权限。
我已经尝试过方法 2 和 4,虽然我的应用程序现在要求相机权限并且我正确地允许了它,但是当我使用文件输入时,会显示所有选项(如图库和文件),但没有相机。
3(和 1)。使用带有 Crosswalk 的最新版本的 webkit 以确保解决方案 #1
由于我的 android webview 可能已过时(并且与解决方案 #1 不兼容),我决定在我的应用程序中包含尽可能最好的 webview:the latest version of Google Chromium.
但是..又没有成功。
1、2 和 3 合并
结果:没有...成功。
是的,有一个解决方案,不需要Cordova/PhoneGap的相机API。
出于我不了解的原因,CocoonJS(名为 WebView+)中使用的 webkit 比 phonegap 的 Crosswalk(拜托,我与茧).
我完全放弃了我的 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"/>
重要的是要注意我只是安装了这些插件以获得想要的权限,但我根本没有使用它们。
可能更有经验的开发人员会有更好的解决方案,但就目前而言,这是我找到的解决此问题的最佳方法。
是否可以在 phonegap 应用程序中仅使用 HTML 输入而不使用相机 API 从相机获取照片?
场景
我开发了一个app,通过Phonegap进行封装(Build)
用户可以使用 html 文件输入提交照片。但是没有从相机拍摄新照片的选项,只有画廊和文件(以及任何其他存储应用程序,如驱动器或保管箱,如果是这样的话)。
我想启用摄像头选项,但没有 PhoneGap 的摄像头 API。
解决方案
我已经尝试了以下解决方案但没有成功:
1. "capture" 属性(来自 Raymond Camden post)
使用此方法,您所要做的就是像这样添加 "capture" 属性:
<input type="file" capture="camera" accept="image/*" id="JustChooseAnID">
Raymond 解释说,使用这种方法你不需要使用 PhoneGap 的相机 API,因为 Google 开发了这个选项并在 Google IO presentation 中展示了它,并且根据 Google 开发者和 Raymond,它有效。
但是..不适合我
2。配置 Phonegap 以请求相机的许可(来自 Jorge Lizaso's question)
"Maybe the camera option is not showed up because your app doesn't have the proper permissions"
在上述问题中,提到了 4 种方法来间接请求和接收使用相机的适当权限。
我已经尝试过方法 2 和 4,虽然我的应用程序现在要求相机权限并且我正确地允许了它,但是当我使用文件输入时,会显示所有选项(如图库和文件),但没有相机。
3(和 1)。使用带有 Crosswalk 的最新版本的 webkit 以确保解决方案 #1
由于我的 android webview 可能已过时(并且与解决方案 #1 不兼容),我决定在我的应用程序中包含尽可能最好的 webview:the latest version of Google Chromium.
但是..又没有成功。
1、2 和 3 合并
结果:没有...成功。
是的,有一个解决方案,不需要Cordova/PhoneGap的相机API。
出于我不了解的原因,CocoonJS(名为 WebView+)中使用的 webkit 比 phonegap 的 Crosswalk(拜托,我与茧).
我完全放弃了我的 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"/>
重要的是要注意我只是安装了这些插件以获得想要的权限,但我根本没有使用它们。
可能更有经验的开发人员会有更好的解决方案,但就目前而言,这是我找到的解决此问题的最佳方法。