Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 硬件后退按钮不可用';在安卓系统上安装Ionic 4_Android_Ionic Framework_Ionic4_Ionic Native - Fatal编程技术网

Android 硬件后退按钮不可用';在安卓系统上安装Ionic 4

Android 硬件后退按钮不可用';在安卓系统上安装Ionic 4,android,ionic-framework,ionic4,ionic-native,Android,Ionic Framework,Ionic4,Ionic Native,我面临着android上的硬件后退按钮的问题。我正在使用Ionic CLI 4.12.0 当用户在主页上单击“后退”按钮时,我想退出应用程序。但后退按钮事件并没有启动。它导航到登录页面,然后重新启动应用程序。我正在我的应用程序中使用标签模板。我已经尝试了许多stackoverflow的答案,这些答案要求解决类似的问题。我在应用程序组件中有如下设置代码: @ViewChild(IonRouterOutlet) routerOutlet: IonRouterOutlet; construc

我面临着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();
})
}

最后我找到了我问题的答案:


  ionViewDidEnter() {
    document.addEventListener("backbutton",function(e) {
      console.log("disable back button called from tab 1")
    }, false);
}

我有一个带菜单的简单应用程序,这是我的解决方案: 1) 在app.components.ts中,我实现了硬件返回按钮以返回每个页面:

constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar,
    private nav: NavController
  ) {
    this.initializeApp();
  }

initializeApp() {
    this.platform.ready().then(() => {
      this.statusBar.styleDefault();
      this.splashScreen.hide();
      this.platform.backButton.subscribeWithPriority(1, () => {
        this.nav.back();
      });
    });
  }
2) home.page.ts中的附加代码是使用硬件后退按钮关闭应用程序(查看优先级):


为什么不使用NavigationController?我也在使用NavigationController。我想实现“再次单击返回退出应用”功能。但后退按钮事件并不是一开始就启动的。啊,好吧,我的错。根据这个答案,之后必须使用
navCtrl.back()
。也许这有帮助?在新版本的离子4,路由是由角路由器处理。在我上面的回答中,NavigationController对我来说意味着角度导航。在您建议的解决方案中,启动后退按钮事件,然后执行navCtrl.back(),但在我的问题中,一开始就不会启动后退按钮事件。您的应用程序是否有侧菜单或选项卡?
  ngOnInit() {
    this.platform.backButton.subscribeWithPriority(2, () => {
      console.log('BACK button pressed');
      navigator['app'].exitApp();
    });
  }