Ionic 2设备后退按钮阻止应用程序退出选项卡

时间:2018-04-16 11:30:19

标签: ionic2

我是离子框架的新手。

我正面临关于ionic-2 app标签的问题,我的应用程序视图中有3个标签,一个是发现,其他是人和消息......我遇到的问题是,当我在消息和人员标签上时我的手机后退按钮我只是退出我的应用程序... 我想要的是当我点击其他标签时,我只是转到我的主页,这是发现页面,如果我按回然后我退出应用程序...任何人对此有任何想法请告诉我我将感谢你...

2 个答案:

答案 0 :(得分:0)

您可以通过注册新的backButton-Action来解决此问题。在我的一个项目中,我用它来创建一个Alert,以防止用户关闭App。您可以向navCtrl询问您当前所在的页面,然后重定向用户,而不是关闭应用程序。

这是一个小小的片段,可以引导您找到解决方案:

this.platform.registerBackButtonAction(() => {
    let nav = this.app.getActiveNav();
    if (...){ // Ask what the current page is.
      // use setRoot on navCtrl to redirect to your preferred page
    }else{
      this.platform.exitApp();
    }
  });

答案 1 :(得分:0)

我用这种方式解决了这个问题:

import { Navbar, Platform } from 'ionic-angular';
import { ViewChild } from '@angular/core';

export class Some_Page_With_Your_Three_Tabs {

    public backButtonAction: any;

    tab1Root = MainTab;        // your first tab
    tab2Root = MessagesTab;    // your second tab
    tab3Root = PeopleTab;      // your third tab

    @ViewChild(Navbar) navBar: Navbar;

    constructor(public platform: Platform, public navCtrl: NavController, public navParams: NavParams) {
    }

    ionViewDidEnter() {
        this.backButtonAction = this.platform.registerBackButtonAction(() => { 
            this.customHandleBackButton();
        }, 10);
        this.navBar.backButtonClick = (e: UIEvent) => { 
            this.customHandleBackButton();
        };
    }

    private customHandleBackButton(): void {
        if (weCanLeave) {
            this.navCtrl.pop({ animate: false });
        } else {
            return;
        }
    }
}