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(三)

posted @ 2020-05-13 13:21  renxiaoren  阅读(1577)  评论(0编辑  收藏  举报