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

我在做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方法还是可行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值