1. app.component.ts增加方法
sideMenuDisabled = true;
backButtonPressed: boolean = false; //用于判断返回键是否触发
customBackActionSubscription: Subscription;
url;
registerBackButtonAction() {
try {
this.customBackActionSubscription = this.platform.backButton.subscribe(() => {
if (this.url == '/index' || this.url == '/login') {
if (this.backButtonPressed) {
navigator['app'].exitApp();
this.backButtonPressed = false;
} else {
this.loaddingSvc.presentAlert("再按一次退出該應用");
this.backButtonPressed = true;
setTimeout(() => this.backButtonPressed = false, 2000);
}
} else if (this.url == '/workorder') {
} else {
this.navController.back();
}
});
} catch (error) {
}
}
initRouterListen() {
this.router.events.subscribe(event => { // 需要放到最后一个执行
if (event instanceof NavigationEnd) {
this.url = event.url;
}
});
}
2. 构造方法中使用
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
private codePush: CodePush,
private loaddingSvc: LoaddingSvc,
private router: Router,
private jpushPlugin: JpushPlugin,
private jPush: JPush,
private navController: NavController,
) {
this.initializeApp();
this.initRouterListen();
}
3. initializeApp() 中增加
this.registerBackButtonAction(); //注册返回按键事件
this.platform.resume.subscribe(); //弹出框
退出APP 关键代码 为:
navigator['app'].exitApp();