在没有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,但现在,这是我发现解决这个问题的最好方法。

Interesting Posts