硬件后退按钮在装有Ionic 4的Android上不是该应用程序

问题描述 投票:0回答:1

我正面临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();
})
}
android ionic-framework ionic4 ionic-native
1个回答
0
投票

我使用了调用后退按钮动作的平台功能,这是我的代码(我也使用了吐司来显示常见消息“再次按下以退出”)]

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();
           }
       }
   });
  }
© www.soinside.com 2019 - 2024. All rights reserved.