关于cordova混合型app使用input file注意事项

来源:互联网 发布:2000到2008年网络歌曲 编辑:程序博客网 时间:2024/05/21 10:32

我在做app调用手机摄像头及图库接口时,一开始是采用cordova提供的插件cordova-plugin-camera(摄像头接口)、cordova-plugin-image-picker(调用图库)方法获得本机摄像头及图库访问权限,具体如下:

获取摄像头

$cordovaToast.showShortCenter('正在打开摄像头...').then(function(success) {$cordovaCamera.getPicture(options).then(function(imageURI) {//自定义的方法UploadPicturesService.uploadPhoto(imageURI);}, function(err) {//自定义方法UploadPicturesService.onFail(err.message);});}, function (error) {// error});


获取图库接口

$cordovaToast.showShortCenter('正在打开摄像头...').then(function(success) {$cordovaCamera.getPicture(options).then(function(imageURI) {//自定义方法}, function(err) {//自定义方法});}, function (error) {// error});


这种是常规的做法,后来我就想能不能直接用input file的方法直接调用手机摄像头及图库,HTML5支持如下方法(多选、调用摄像头、图库):

<input type=file><input type=file multiple><input type=file accept="image/*"><input type=file accept="image/*;capture=camera">


在iOS设备上使用正常,但在安卓上存在不同的问题,本人亲测在Android4.2、及Android4.4华为机子上是无法调用摄像头的,图库倒可以,但不支持多选,只能一张一张的选,但在Android5.0机子上,虽然也只能用调用图库,但图库里有摄像头的选项,可以间接调用摄像头。
本人尝试用cordova-plugin-inappbrowser插件,并按如下教程 http://blog.csdn.net/lovelyelfpop/article/details/52815700 配置,但结果是一样的。所以在app开发中最好还是使用原生的接口。但如果是webapp或者是用微信浏览器web开发,除了使用其提供的接口外,用h5提供accept方法还是可行的。

0 0
原创粉丝点击