上一篇文章提到了如何在ionic1中使用imagepicker插件,以及实现插件显示中文(中文)的问题。有兴趣的可以看看:ionic1使用ImagePicker插件AnddisplayChinese(中文)1.这次要解决的问题是app在部分手机上打开相册时莫名其妙的闪退.在上一篇文章中我们是这样使用imagepicker插件的。连接手机联调后,可以查看相关错误原因error$scope.openImagePicker=()=>{constoptions={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重新下载一个插件,可以更换一个插件cordovapluginremovecordova-plugin-image-picker//先移除原有插件cordovapluginaddhttps://github.com/Findiglay/cordova-imagePicker.git//添加新插件后,权限获取过程已经完成,这里就不废话了。想了解更多可以去github查看3.2权限插件的使用与获取cordova-plugin-android-permissionscordovapluginaddcordova-plugin-android-permissions//在js中安装插件angular.module("app").run(["$rootScope","i18n","$ionicPlatform",function($rootScope,$ionicPlatform){"usestrict";functioncheckPermissions(){constpermissions=cordova.plugins.permissions,permissionList=[permissions.CAMERA,permissions.WRITE_EXTERNAL_STORAGE];functionerrorCallback(){console.war("权限未开启");}functioncheckPermissionCallback(status){if(!status.hasPermission){permissions.requestPermissions(permissionList,status=>{if(!status.hasPermission)errorCallback();},错误回调);}}permissions.hasPermission(permissionList,checkPermissionCallback,null);}ionic.Platform.ready(()=>{try{$ionicPlatform.is("Android")&&checkPermissions();}catch(e){console.warn("Applicationisrunninginbrowsercausesinspectionfailed.");}});}]);app环境准备好后,回去访问相册权限,和存储权限,如果没有启用,会询问用户。只要用户开启权限,imagepicker就可以在android6以上的手机上使用。参考:ioniccordovaalbumplug-inandmonitorAndroidreturnkey
