ionic對系統返回鍵的處理
阿新 • • 發佈:2018-11-28
點選手機自帶返回鍵退出系統。
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])