在上一篇文章中,提到了如何在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. Box-shadow制作漂亮的外阴影输入框

    背景:之前做项目中的一个移动端页面,关于在搜索框中输入信息查找对应的照片 改了几次ui图之后,最终的搜索框的设计图如下: 开始做页面的时候,就想到了用box-shadow 来实现外阴影边框.用bord ...

  2. git简易操作手册

    从远程仓库新建 $ git clone https://github.com/xxxr/Repository.git $ cd Repository/ $ git config --global us ...

  3. Ubuntu - 14.04下,GO语言的安装!

    一,下载GO语言的安装文件,我直接下载GO语言的安装包(64位),并不是源码: 下载地址: 64位:https://storage.googleapis.com/golang/go1.6.linux- ...

  4. PropertySource顺序

    Spring Boot使用一个非常特殊的PropertySource顺序,该顺序旨在允许合理地覆盖值.按以下顺序考虑属性: $HOME/.config/spring-boot当devtools处于活动 ...

  5. linux命令详解——lsof

    lsof全名list opened files,也就是列举系统中已经被打开的文件.我们都知道,linux环境中,任何事物都是文件, 设备是文件,目录是文件,甚至sockets也是文件.所以,用好lso ...

  6. kernel module insmod错误

    kernel模块配置 Enable loadable module support 打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安 ...

  7. 003-centos7:rsyslog简单配置客户端和服务器端

    实现把一个主机作为客户端,把日志发送到指定的服务器端: [服务器端] 开放tcp端口,udp端口: vim /etc/rsyslog.conf: # Provides UDP syslog recep ...

  8. Reservoir Computing: Harnessing a Universal Dynamical System

    原文连接:https://sinews.siam.org/Details-Page/reservoir-computing-harnessing-a-universal-dynamical-syste ...

  9. java读写大文件

    java读写2G以上的大文件(推荐使用以下方法) static String sourceFilePath = "H:\\DataSource-ready\\question.json&qu ...

  10. Github首次使用,上传代码

    参考博客:https://blog.csdn.net/zhangsiyao11/article/details/77007684 1.首先下载客户端github下载地址为 https://github ...