首页 > 解决方案 > ionic 4如何获取页面名称?

问题描述

this.platform.backButton.subscribe(() => {
  // get current active page
  const view = ***NEED HELP HERE**;
  if (view.component.name === 'HomePage') {
    // Double check to exit app
    if (new Date().getTime() - lastTimeBackPress < timePeriodToExit) {
      navigator['app'].exitApp(); // Exit from app
    } else {
      this.presentToast('Press back again to exit App');
      lastTimeBackPress = new Date().getTime();
    }
  } else {
    // go to previous page
    this.nav.goBack();
  }
});

我正在尝试在 ionic 4 中使用后退按钮事件。但我无法在 app.component.ts 中获取当前页面或视图名称

标签: ionic-frameworkionic4

解决方案


goBack() 让我失望了。Ionic4 使用 navigateBack(url)。我一直在寻找 goBack 替代品。不幸的是,goBack 仍在代码库中,但没有记录在 Ionic 4 中......而且它不适用于所有平台,我希望它会根据我阅读的文档消失。我尝试使用它,然后返回到 navigateBack(url)。

我一直在寻找一种非 HTML 方法来返回,并且仅在没有导航堆栈的情况下提供 defaultHref,因为没有 goBack(),就像具有 defaultHref 的离子后退按钮一样,但我还没有找到它。

所以,对于我的后退按钮,我已经这样做了(我有两个选项卡,主页和地图):

private tab: string;

constructor(
  private navCtrl: NavController,
  private router: Router
) {
  const url = this.router.url;
  const urlParts = url.split('/');

  this.tab = 'home';
  if (urlParts.includes('map')) {
    this.tab = 'map';
  }

然后:

  this.navCtrl.navigateBack(`/tabs/${this.tab}`);

这种方法应该可以帮助您根据 URL 导航。根据有限的信息,这是我能给出的最佳答案。


推荐阅读