点击手机自带返回键退出系统。
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])
网友评论