ionic 对系统返回键的处理

2018-11-28  本文已影响0人  菠菜盼娣

点击手机自带返回键退出系统。

ap.js中需要依赖注入 $ionicPopup  $rootScope $location $ionicHistory  $ionicViewSwitcher

$ionicPlatform.ready中使用

```

$ionicPlatform.registerBackButtonAction(function(e){

    /*用一个变量来控制界面上是否已经存在popup,多次点击的时候如果存在就不再提示*/

    $rootScope.popup = {

        isPopup: false,

        index: 0

    };

    function showConfirm(){

      var confirmPopup= $ionicPopup.confirm({

        title:"<strong>退出应用?</strong>",

        template:"你确定要退出污染源监测吗?",

        okText:"确定",

        cancelText:"取消"

      });

      $rootScope.popup.isPopup=true;

      confirmPopup.then(function(res){

        if(res){

          ionic.Platform.exitApp();

        }

      })

    }

    /*根据首页的路由判断是否提示退出*/

    // if($location.path() =="/tab/home"||$location.path() =="/tab/Signout"||$location.path() =="/slide"){

    if($location.path() =="/tab/home"||$location.path() =="/tab/Signout"){

      if(!$rootScope.popup.isPopup){

        showConfirm();

      }

    }else if($location.path() =="/slide"){

      window.plugins.appMinimize.minimize()  //使页面最小化

    }

    // else if($ionicHistory.backView()){

    //  $ionicHistory.goBack();//back到之前的路由

    //  $ionicViewSwitcher.nextDirection("back");//增加切换的样式

    // }else{

    //  showConfirm();

    // }

    if($location.path() =="/slide"){

      window.plugins.appMinimize.minimize()  //使页面最小化

    }

    return false;

},200);//501表示优先级  100~999之间    在app 中 弹出框也是点击返回键隐藏的  此时 修改优先级为301

```

ionic在底层源码中定义了物理返回按键的事件处理优先级的:

var PLATFORM_BACK_BUTTON_PRIORITY_VIEW = 100; 

var PLATFORM_BACK_BUTTON_PRIORITY_SIDE_MENU = 150; 

var PLATFORM_BACK_BUTTON_PRIORITY_MODAL = 200; 

var PLATFORM_BACK_BUTTON_PRIORITY_ACTION_SHEET = 300; 

var PLATFORM_BACK_BUTTON_PRIORITY_POPUP = 400; 

var PLATFORM_BACK_BUTTON_PRIORITY_LOADING = 500;

[actionId]

返回上个视图=100;

关闭侧栏菜单=150;

关闭Modal=200;

关闭 action sheet=300;

关闭popup=400;

关闭loading=500;

registerBackButtonAction(callback, priority, [actionId])

上一篇下一篇

猜你喜欢

热点阅读