zoukankan      html  css  js  c++  java
  • 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(三)

  • 相关阅读:
    c++ readIntger writeIntger
    c++ string split function
    uniapp 创建简单的tabs
    c++ 获取和设置 窗口标题
    两种js数组去重的方法
    将jquery和公共样式缓存到localStorage,可以减少Http请求,从而优化页面加载时间
    H5 多个视频 循环播放效果
    使用iScroll时,input等不能输入内容的解决方法
    修改EsayUi 中 tree 的原有样式,变为according 之类的样式 ,且子菜单显示在右侧
    跨浏览器的事件对象-------EventUtil 中的方法及用法
  • 原文地址:https://www.cnblogs.com/renxiaoren/p/12881816.html
Copyright © 2011-2022 走看看