在没有Camera API的情况下仅使用HTMLinput在Phonegap应用上使用相机
是否有可能从iPhone的相机只有HTMLinput,没有相机的API,从相机获取照片?
脚本
我开发了一个应用程序,并通过Phonegap (构build)
用户可以使用html文件input提交照片。 但没有select从相机,只有画廊和文件(和任何其他存储应用程序,如驱动器或保pipe箱,如果是这样的情况下)拍摄新的照片。
我想启用相机选项,但没有PhoneGap的Camera API。
解决scheme
我尝试了以下解决scheme,但没有成功:
1.“捕获”属性(来自雷蒙德卡姆登邮件 )
有了这个方法,你所要做的就是像这样添加“capture”属性:
<input type="file" capture="camera" accept="image/*" id="JustChooseAnID">
Raymond解释说,使用这种方法,您不需要使用PhoneGap的Camera API,因为Google开发了这个选项,并在Google IO演示文稿中显示,并根据Google开发人员和Raymond的说法,它可以工作。
但是..不适合我。
2.configurationPhonegap询问相机的许可(来自Jorge Lizaso的问题 )
“也许相机选项没有出现,因为你的应用程序没有适当的权限”
在上面的问题中,提到了4种方法来间接询问并获得使用相机的适当权限。
我已经尝试了方法2和4,虽然我的应用程序现在要求相机的权限,我允许它正确的,当我使用文件input,所有的选项(像画廊和文件),但没有相机。
3(和1)。 使用Crosswalk的最新版本的webkit来确保解决scheme#1
由于我的android webview可能已经过时(并且与解决scheme#1不兼容),我决定在我的应用中包含最好的webview: 最新版本的Google Chromium 。
但是..再次成功。
1,2和3组合
结果:没有…成功。
是的,有一个解决scheme,不需要Cordova / PhoneGap的Camera API。
由于我所知的原因, CocoonJS (名为WebView +)中使用的webkit远比电话的Crossswalk更优化和调整为HTML5应用程序(请与Cocoon无关)。
我完全丢弃了我的Phonegap config.xml设置,并尝试了Cocoon builder。 我使用了解决scheme#1(文件input中的捕获属性),并通过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"/>
重要的是要注意 ,我只是安装这些插件,以获得所需的权限,但我没有使用它们。
也许更有经验的开发人员会有更好的解决scheme,但现在,这是我发现解决这个问题的最好方法。