ionic对安卓返回和退出的处理

ionic应用中默认安卓返回键响应的事件是按照ionic访问页面的顺序回退页面。当在应用访问多个页面后按返回键,ionic会按照页面访问的顺序逐一返回每个访问过的页面。。。遇到这样的体验,最想做的就是砸掉手机(/TДT)/

这种情况可以通过ionic的registerBackButtonAction方法给安卓返回键注册一个事件,使点击返回键的事件是回退ionicHistory记录的上一个页面。
具体方法是在app.js run方法添加

$ionicPlatform.registerBackButtonAction(function (e) {
      e.preventDefault();
      $ionicHistory.goBack();
      return false;
    }, 101);

别忘了在function中引用代码中用到的模块。

如果还要添加返回到最后弹出退出确认框的话,可以用下面的代码

$ionicPlatform.registerBackButtonAction(function (e) {
      e.preventDefault();
      function showConfirm() {
        var confirmPopup = $ionicPopup.confirm({
          title: '<strong>退出应用?</strong>',
          template: '你确定要退出应用吗?',
          okText: '退出',
          cancelText: '取消'
        });

        confirmPopup.then(function (res) {
          if (res) {
            ionic.Platform.exitApp();
          } 
          else {
            // Don't close
          }
        });
      }

      // Is there a page to go back to?
      if ($location.path() == '/tab/dashboard' ) {
        showConfirm();
      } else if ($ionicHistory.backView()) {
       $ionicHistory.goBack();
      } else {
        // This is the last page: Show confirmation popup
        showConfirm();
      }

      return false;
    }, 101);

参考资料: http://blog.csdn.net/offbye/article/details/38975617?utm_source=tuicool