为了账号安全,请及时绑定邮箱和手机立即绑定

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

ionic混合开发调用Android系统相册,官方的cordova-image-picker插件在直接用的时候会在Android6.0以上的版本由于没有获得相应的存储权限而闪退。

  • 解决方法一:

    • 在原有的cordova插件上面改动,添加了动态授权,我放在了github 用法和原来的相同。

        function getImgPicker() {    var options = {      maximumImagesCount: 1,      width: 800,      height: 800,      quality: 80,      title:'',      message:'',      outputType:1
          };    window.imagePicker.getPictures(function (results) {
            vm.userInfo.Url = results[0];      console.log(vm.userInfo.Url);
            vm.upload(vm.userInfo.Url);
          }, function (err) {
            publicMethod.showLoadingNoBackdrop('调取相册失败');      console.log(angular.toJson(error, true));
          }, options);
        }
  • 解决方法二:

    • 添加一个新的插件,专门获取所需的权限cordova-plugin-android-permissions,下面是用法。

        var permissions = cordova.plugins.permissions;
        permissions.hasPermission(permissions.CAMERA, checkPermissionCallback, null);   
        function checkPermissionCallback(status) {    if(!status.hasPermission) {      var errorCallback = function() {        console.warn('Camera permission is not turned on');
            }
            permissions.requestPermission(
              permissions.CAMERA,        function(status) {          if(!status.hasPermission) errorCallback();
              },
              errorCallback);
          }
        }

ionic 监听Android的返回键和双击退出程序(直接上代码)

$ionicPlatform.registerBackButtonAction(function (e) {
  e.preventDefault();  //判断处于哪个页面时双击退出
  if ($location.path() == '/tab/home' || $location.path() == '/tab/activity' ||
    $location.path() == '/tab/person' || $location.path() == '/tab/share' || $location.path() == '/tab/study') {    if ($rootScope.backButtonPressedOnceToExit) {
      ionic.Platform.exitApp();
    } else {
      $rootScope.backButtonPressedOnceToExit = true;
      $cordovaToast.show("再按一次退出系统", "short", "bottom");
      $timeout(function () {
        $rootScope.backButtonPressedOnceToExit = false;
      }, 2000);
    }
  } else if ($location.path() == '/blueprint-list' || $location.path() == '/megagame-list') {
    $state.go('tab.activity');   //此处判断当前所处的View,并返回到tab页
  } else if ($ionicHistory.backView()) {
    $ionicHistory.goBack();
  } else {    if ($rootScope.backButtonPressedOnceToExit) {
      ionic.Platform.exitApp();
    } else {
      $rootScope.backButtonPressedOnceToExit = true;
      $cordovaToast.show("再按一次退出系统", "short", "bottom");
      $timeout(function () {
        $rootScope.backButtonPressedOnceToExit = false;
      }, 2000);
    }
  }  return false;
}, 101);



作者:Nickyzhang
链接:https://www.jianshu.com/p/4cfa6652fb3f


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消