ionic 插件Image Picker 安卓闪退问题

Posted renxiaoren

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(三)

以上是关于ionic 插件Image Picker 安卓闪退问题的主要内容,如果未能解决你的问题,请参考以下文章

Flutter拍照与选择照片并且保存到本地

选择美女-flutter image_picker插件更新

在颤振插件 image_picker 示例中从图库中选择图像时内存增加

如何在 Flutter 中使用 Dio 和 multi_image_picker 插件上传多张图片

Flutter Image Picker 插件为每个选择的文件分配自己的名称

React Native - 直接打开安卓图库