ionic 插件Image Picker 安卓閃退問題


緣由:

      針對ionic+cordova+angular 開發APP時,當需要選擇多個圖片時,則需要ImagePicker 插件。不過,安卓版本大於6.0的時候,改插件是需要授權的:相冊權限和存儲權限。若沒有權限,則會閃退。

一、ionic3

(一)安裝插件

  npm安裝插件,命令語句

cordova plugin add com.synconset.imagepicker@2.1.8

cordova plugin add cordova-plugin-camera@3.0

    查看所有cordova 插件的命令語句:

cordova plugin list

  

(二)配置項目

  1、打開工程目入android文件下的build.gradle 如:

 

 

  2、搜索def promptForReleaseKeyPassword(),在下方添加代碼如:【紅色部分】

def promptForReleaseKeyPassword() {
    if (!cdvReleaseSigningPropertiesFile) {
        return;
    }
    if ('__unset'.equals(android.signingConfigs.release.storePassword)) {
        android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ')
    }
    if ('__unset'.equals(android.signingConfigs.release.keyPassword)) {
        android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: ');
    }
}

configurations.all { resolutionStrategy { force "com.android.support:support-v4:24.1.1" } }

 

三、權限的檢測和請求

  在App啟動時,檢測是否有存儲和相冊權限,例如app.component.ts 文件中:

this.platform.ready().then(() => {
        // 權限
        if (this.settingSevice.isAndroid()) {
            this.checkPermissions();
        }
    });


/*檢查App是否有打開圖庫的權限*/
    checkPermissions() {
        // @ts-ignore
        const permissions = cordova.plugins.permissions,
            permissionList = [permissions.CAMERA, permissions.WRITE_EXTERNAL_STORAGE];
        function errorCallback() {
            console.warn("permissions is not turned on");
        }
        function checkPermissionCallback(status) {
            if(!status.hasPermission) {
                permissions.requestPermissions(
                    permissionList,
                    status => {
                        if(!status.hasPermission) errorCallback();
                    },
                    errorCallback);
            }
        }
        permissions.hasPermission(permissionList, checkPermissionCallback, null);
    }

 

 

二、ionic4 【大部分和ionic3類同】

(一)安裝插件【不需要具體版本】

ionic cordova plugin add cordova-plugin-telerik-imagepicker
npm install @ionic-native/image-picker

 

(二)配置方式一樣,但是路徑不同【android --App--buid.gradle】下進行配置

 

 

 

(三)權限 ---同ionci3(三)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM