离子3标签硬件后退按钮不会退出

Dan*_*ore 1 android cordova ionic-framework ionic3

我有一个基于超级模板的离子3应用程序.我已将根页面设置为以下内容:

<ion-tabs>
    <ion-tab [root]="tab1Root" [tabTitle]="tab1Title" tabIcon="bonfire"></ion-tab>
    <ion-tab [root]="tab2Root" [tabTitle]="tab2Title" tabIcon="search"></ion-tab>
    <ion-tab [root]="tab3Root" [tabTitle]="tab3Title" tabIcon="cog"></ion-tab>
</ion-tabs>
Run Code Online (Sandbox Code Playgroud)

当我按下此页面上的硬件后退按钮时,根本没有任何反应.但是,当我将内容更改为其他内容时,例如:

<p>Hello</p>
Run Code Online (Sandbox Code Playgroud)

然后按照我的意愿退出硬件后退按钮.

如何在选项卡页面上使硬件返回按钮正常工作,同时保留其他页面上的工作默认行为?

Moh*_*opi 5

在你的app.component.ts文件 里面

import { Nav, App } from 'ionic-angular';

export class MyApp {
@ViewChild(Nav) nav: Nav;
Run Code Online (Sandbox Code Playgroud)

然后

         platform.registerBackButtonAction(() => {
           let nav = app.getActiveNav();
           let activeView: ViewController = nav.getActive();

           if(activeView != null){
             if(nav.canGoBack()) {

               nav.pop();
             }else if (typeof activeView.instance.backButtonAction === 'function')
             {
               activeView.instance.backButtonAction();
             }
             else {

               nav.parent.select(0); // goes to the first tab
             }
           }
         });
Run Code Online (Sandbox Code Playgroud)

希望这对您有所帮助,也不要忘记将它放在平台内.

在你需要关闭应用程序的respcted ts文件中写一个函数

backButtonAction(){
  this.platfrom.exitApp();
}
Run Code Online (Sandbox Code Playgroud)