ionic-framework - 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 中获取当前页面或视图名称
解决方案
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 导航。根据有限的信息,这是我能给出的最佳答案。
推荐阅读
- google-apps-script - 我的脚本“从谷歌文档获取 URL”不再起作用 - 服务器故障 为什么?
- haproxy - “原因:Layer6 超时”可能意味着什么?
- acumatica - 使用 WEB API 添加注释
- bootstrap-4 - Liferay 7.1:在我的 liferay 主题中导入 Material Design Bootstrap
- c - 为什么我的引脚中断在整个过程中只工作一次?
- javascript - 是否有可能以编程方式从 ftp 链接下载文本内容?
- tensorflow - Google Colab 上的 Tensorflow-Keras 重现性问题
- vb.net - 使用 VB.NET 运行 WScript.exe
- excel - 通过 VBA 打开 excel 设置
- python - 如何在 Python 中解析 JSON 中的值