關於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方法還是可行的。

發佈了38 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章