我正面临Android上的硬件后退按钮问题。我正在使用Ionic CLI 4.12.0当用户在主页上并单击“后退”按钮时,我想退出该应用程序。但是后退按钮事件并未触发。它导航到登录页面,然后重新启动应用程序。我在我的应用程序中使用标签模板。我已经尝试过许多关于stackoverflow的答案,它们声称可以解决类似的问题。我在应用程序组件中有如下设置代码:
@ViewChild(IonRouterOutlet) routerOutlet: IonRouterOutlet;
constructor(private platform: Platform){
this.platform.backButton.subscribeWithPriority(0, () => {
console.log("back button clicked");
navigator["app"].exitApp();
})
}
我使用了调用后退按钮动作的平台功能,这是我的代码(我也使用了吐司来显示常见消息“再次按下以退出”)]
registerBackButtonAction(){
let lastTimeBackPress = 0;
let timePeriodToExit = 2000;
this.platform.registerBackButtonAction(() => {
let activePortal = this.ionicApp._loadingPortal.getActive() || // Close If Any Loader Active
this.ionicApp._modalPortal.getActive() || // Close If Any Modal Active
this.ionicApp._overlayPortal.getActive(); // Close If Any Overlay Active
if (activePortal) {
activePortal.dismiss();
}
else if(this.nav.canGoBack()){
this.nav.pop();
}else{
//Double check to exit app
if (new Date().getTime() - lastTimeBackPress < timePeriodToExit) {
this.platform.exitApp(); //Exit from app
} else {
this.toastCtrl.create({
message: 'Press again to exit',//'Press back button again to exit',
duration: 2000
}).present();
lastTimeBackPress = new Date().getTime();
}
}
});
}