在上一篇文章中,提到了如何在ionic1中使用imagepicker插件,并且实现该插件显示中文(汉化)问题
有兴趣可以看看:ionic1使用ImagePicker插件并且显示中文(汉化)

1、这次要解决的问题是app在一些手机上打开相册时,莫名闪退问题。
在上一篇文章中我们这样使用imagepicker插件。通过连接手机联调后,可以查看相关的错误原因error

    $scope.openImagePicker= () => {
const options = {
maximumImagesCount: 11, // 允许一次选中的最多照片数量
width: 800, // 筛选宽度
height: 600, //筛选高度
quality: 100 //图像质量的大小,默认为100
}; $cordovaImagePicker.getPictures(options)
.then(results => {
console.log("选中的照片返回一个照片地址数组,可以直接在html中绑定");
$scope.imgList = results;
}, error => {
console.log(error);
console.log("打开照片失败");
});
};

2、知道原因就好解决了,在手机设置中把这个app的相关权限开启,然后在打开相册。ok,没有闪退,运行正常。但是我们当然没法让用户这么做,所以还是要从想办法解决获取权限问题

3、解决闪退方法
3.1 重新下载一个插件,可以更换一个插件

cordova plugin remove cordova-plugin-image-picker // 先移除原来的插件
cordova plugin add https://github.com/Findiglay/cordova-imagePicker.git // 在添加新的插件

已经做过权限获取处理,这里就不在废话,想了解可以去github查看

3.2 使用获取权限的插件cordova-plugin-android-permissions
cordova plugin add cordova-plugin-android-permissions // 安装插件

在js中

angular.module("app").run(["$rootScope", "i18n", "$ionicPlatform",
function ($rootScope, $ionicPlatform) {
"use strict"; function checkPermissions() {
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);
} ionic.Platform.ready(() => {
try {
$ionicPlatform.is("Android") && checkPermissions();
} catch (e) {
console.warn("Application is running in browser causes inspection failed.");
}
});
}]);

这样在app环境准备好后,回去访问相册权限, 和存储权限,如果没有开启,则询问用户,只要用户开启权限就可以了。这样就能在android 6以上的手机使用imagepicker

参考: ionic cordova相册插件和监听Android返回键

ionic1使用imagepicker在安卓手机上闪退问题的更多相关文章

  1. 关于极光推送在手机系统低于iOS10的手机上闪退的问题。

    最近项目中用到了极光推送,升级到了最新的SDK 2.1.9版本,发现只能在iOS10 上运行,其他测试的时候真机闪退.贴上一个可能的原因:

  2. 在安卓手机上通过虚拟机运行Windows XP

    转自:https://www.ithome.com/html/android/302170.htm 细数当年的桌面版Windows,似乎针对ARM架构处理器的版本并不多,小编曾用过一段时间的Windo ...

  3. 安卓手机上安装 谷歌 play 商店

    安卓手机上安装 谷歌 play 商店 安卓(Android)就是现在流行的智能手机系统,它是由Google公司和开放手机联盟领导及开发.由于安卓系统的底层代码(AOSP)是开源的,以GPL和Apach ...

  4. 安卓手机上运行 PC-E500 程序

    目录 第1章安卓手机上运行 PC-E500 程序    1 1 PockEmul    1 2 下载    1 3 打包BASIC程序    2 4 配置PC-E500模拟器    5 5 载入e50 ...

  5. libmad和libmpg123解码mp3在安卓手机上的比较

    libmad和libmpg123解码mp3在安卓手机上的比较1. libmad 选自 http://sourceforge.net/projects/mad  libmad-0.15.1b.tar.g ...

  6. input type = file 在部分安卓手机上无法调起摄像头和相册

    移动端H5web 用input type = file 在部分安卓手机上无法调起摄像头拍照,有的也无法访问相册而是直接访问了文档,解决办法是: 加上 accept = "image/*&qu ...

  7. 安卓手机上微信无法打开Https网址的完美解决方案

    1,第三方网站检测网站的SSL证书是否正确的安装 https://www.geocerts.com/ssl-checker,大概率你会看到下边的场景,一个证书链完整的警告,如果想知道我的基础配置是什么 ...

  8. 在安卓(手机)上运行 Ubuntu (Linux)

    在安卓(手机)上运行 Ubuntu (Linux) 由于x86 和 arm 是跨平台的,所使用的编译器自然也不同.如果要在电脑上编译安卓手机上的程序,则需在电脑端建立ARM交叉编译环境,这个过程是在耗 ...

  9. Andriod部分手机频繁闪退,vivo y55a等,Skipped 62 frames! The application may be doing too much work on its main thread

    问题描述: 部分手机频繁闪退的问题.比如:vivo y55a,在升级.交任务.穿戴装备等都有概率闪退... 表现: 卡几帧就马上闪退. 在学习技能.穿戴装备.升级等概率出现,新角色第3个任务“拦截少年 ...

随机推荐

  1. 附录3:RMA算法原理

    RMA算法分三步: 一.背景校正(没精力写了) 二.归一化(没精力写了) 三.计算表达值 假设有5张芯片,这些芯片的某个探针组包含5个探针,它们的表达值如下: GeneChip 4 8 6 9 7 3 ...

  2. linux centos 安装jdk

    1.先查看是否已经安装的有java java -version,如果有需要卸载的直接卸载      rpm -qa | grep java 下面这几个可以删除       java-1.7.0-ope ...

  3. WPF文本输入框关闭Win10输入法设置

    今天一个同事突然站起来给了我一个眼神,我就知道没啥好事.果然给我指出了一些bug,其中一个是这样的,密码输入框只能输入一个字符,再输入就输入不了. 这种降档次的错误咱也能出,果断夺过键盘,疯狂输入一番 ...

  4. .Net高并发解决思路

    转自: 本文如有不对之处,欢迎各位拍砖扶正.另源码在文章最下面,大家下载过后先还原一下nuget包,需要改一下redis的配置,rabbitmq的配置以及Ef的连接字符串.另外使用的是CodeFirs ...

  5. bzoj 4722 由乃

    bzoj 先考虑一种简单的情况,即这个区间是否有相同的数,因为值域大小为1000,那么当区间长度\(>1000\)时,根据鸽巢原理,一定会有两个相同的数,这时候可以直接输出Yuno 进一步的,对 ...

  6. Eclipse安装Hadoop插件配置Hadoop开发环境

    一.编译Hadoop插件 首先需要编译Hadoop 插件:hadoop-eclipse-plugin-2.6.0.jar,然后才可以安装使用. 第三方的编译教程:https://github.com/ ...

  7. css动画之旋转翻牌效果

    1.我们先设置两个盒子大小,颜色等等,然后定位重叠在一起,最后再进行动画设置 例子如下: <style> .box { height: 300px; width: 300px; posit ...

  8. bilibili小程序项目总结

    1.关于mock的使用 第一步:先到Mock官网(http://mockjs.com/)上面熟悉一下基本用法 第一步:具体使用实例: 下载wxMock.js和mock.js文件 下载地址:https: ...

  9. Swift(二)基础部分

    数据类型 Swift 包含了 C 和 Objective-C 上所有基础数据类型.它还增加了 Objective-C 中没有的高阶数据类型比如元组(Tuple) 1.基础类型 Int整形和UInt无符 ...

  10. OpenSSL源码简介

    1.X.509标准 x509是由国际电信联盟(ITU-T)制定的数字证书标准:包含公钥和用户标志符.CA等: x509是数字证书的规范,P7和P12是两种封装形式:X.509是常见通用的证书格式.所有 ...