使用navigateForward导航时,ionic 4 routerOutlet.canGoBack() 返回 false

K H*_*ueh 6 ionic-framework

我的离子应用程序中有一个按钮可以从主页打开文章。我想让我的用户通过按设备后退按钮退出应用程序。但是当他们位于文章页面时,我希望它在按后退按钮时返回主页。

我创建了一个自定义后退按钮事件来处理退出应用程序的功能。它可以从主页退出应用程序。但是,当按文章页面上的后退按钮时,它不会导航回主页,也不会发生任何情况。如何让按后退按钮时从文章页回到首页?

在app.component.ts中

this.platform.backButton.subscribeWithPriority(99, async () => {
  if (this.routerOutlet && this.routerOutlet.canGoBack()) {
      this.routerOutlet.pop();
  } else if (this.router.url === '/home') {
      navigator['app'].exitApp();
  }
});
Run Code Online (Sandbox Code Playgroud)

我注意到从文章页面触发事件时 this.routerOutlet.canGoBack 返回 false,因此 routerOutlet.pop() 不会被触发。不确定这是否与我打开文章页面的方式有关?

这就是我打开文章页面的方式

viewArticle(articleId) {
  let navigationExtras: NavigationExtras = {
    state: {
      articleId: articleId
    }
  };
  this.navController.navigateForward(['/article'], navigationExtras);
}
Run Code Online (Sandbox Code Playgroud)