ionic註冊安卓物理返回鍵的處理方法

用ionic框架開發過app的朋友都知道,ionic打包的安卓工程,物理返鍵的處理在真機中是逐一返回之前訪問過的頁面,有可能是父頁面到子頁面,也有可能是子頁面到父頁面,這樣造成的用戶體驗十分不好,幸好ionic框架支持註冊安卓物理返回鍵的功能,具體處理方法爲在app.js的.run函數中註冊$ionicPlatform.registerBackButtonAction
貼代碼:

 /**
   * 註冊安卓返回鍵的處理
   * @author hz
   * @since 2017/8/11
   * */
  $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() == '/mainMap' ) {
      showConfirm();
    } else if ($ionicHistory.backView()) {
      $ionicHistory.goBack();
    } else {
      // This is the last page: Show confirmation popup
      showConfirm();
    }

    return false;
  }, 101);

處理邏輯爲到了指定頁面:$location.path() == '/mainMap'按返回鍵就提示是否退出應用,一般是登錄後的首頁;如果$ionicHistory有返回的頁面,按返回鍵就直接返回$ionicHistory.goBack();其它情況也是提示是否退出應用,一般是登錄頁面。
最後別忘了在.run函數中添加參數:.run(function($ionicPlatform, $ionicHistory, $ionicPopup, $location){}),不然該函數不起作用。

參考資料:http://blog.csdn.net/pxc932422338/article/details/44916897

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章