cordova plugin ImagePicker
修复 ios 13 选多张图可能会崩溃的问题
非常感謝南塵和banchichen 提供的源碼支援多點star開源不容易,謝謝。扣扣群:273613165
一個支援多選,相簿實現了拍照、預覽、圖片壓縮等功能
cordova plugin add https://github.com/giantss/cordova-plugin-ImagePicker.git
注意:Android 專案先不要直接build ,請參閱android注意事項。
Android | iOS |
---|---|
![]() | ![]() |
一個粗糙的cordova demo
// 选图
ImagePicker . getPictures ( function ( result ) {
alert ( JSON . stringify ( result ) ) ;
} , function ( err ) {
alert ( err ) ;
} , {
maximumImagesCount : 9 ,
width : 1920 ,
height : 1440 ,
quality : 100
} ) ;
// 拍照
ImagePicker . takePhoto ( function ( result ) {
alert ( JSON . stringify ( result ) ) ;
} , function ( err ) {
alert ( err ) ;
} , {
width : 1920 ,
height : 1440 ,
quality : 50
} ) ;
回傳結果如下:
// 如果是拍照,images 数组中只有一个对象
{
"images": [{
"path": "/data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817455118.jpg",
"uri": "file:///data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817455118.jpg",
"width": 720,
"height": 1280,
"size": 104871 // 文件体积(单位:字节)
}, {
"path": "/data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817464525.jpg",
"uri": "file:///data/user/0/com.pushsoft.im2/cache/ImagePicker/152783817464525.jpg",
"width": 720,
"height": 1280,
"size": 109873
}],
"isOrigin": false // 是否原图
}
ionic 中使用本插件,需要宣告: declare let ImagePicker:any
配置參數 | 參數意義 |
---|---|
maximumImagesCount | 多選限制數量,預設為9 |
width | 設定輸出圖片的width,預設為自動 |
height | 設定輸出圖片的height,預設為自動 |
quality | 圖片品質預設80 |
enablePickOriginal | 允許選擇原圖預設true |
先移除安裝過的舊版插件
如果build 報下面的錯
error: resource android:attr/dialogCornerRadius not found
error: resource android:attr/fontVariationSettings not found
error: resource android:attr/ttcIndex not found
請使用cordova-android-support-gradle-release 這個插件統一專案中的Android Support 庫版本:
$ cordova plugin add cordova-android-support-gradle-release --variable ANDROID_SUPPORT_VERSION={required version}
其中{required version}
值為類似26.+
, 27.+
, 28.+
這種。
如果你用的是低版本Cordova 和Gradle,會報錯不支援implementation
Cordova 7.1.0 及以下版本(對應[email protected]及以下版本),請將cordova-plugin-ImagePickersrcandroidimagepicker.gradle
裡面的implementation
修改為compile
, 因為低版的Cordova-Android 使用的是低版的Gradle,不支援implementation
。
如果還是build 不成功
$ cordova platform rm android
或
$ cordova platform rm ios
移除舊的平台,然後重新add
takePhoto
方法,直接進入拍照takePhoto
方法,直接進入拍照['xxx', 'yyy']
,現在是{ images: ['xxx', 'yyy'], isOrigin: true/false }
The MIT License (MIT)