我正在使用 Ionic 4 和 Angular 路由器开发一个应用程序。我想导航到另一个页面并清除页面堆栈。在 Android 原生中,它是这样的:
Intent intent = new Intent(NewActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
从我到目前为止所读到的内容来看,可以使用Ionic NavController
但它在 Ionic 4 中已被弃用。我了解了按钮routerLink
但如果我没有记错的话,通过使用该应用程序将立即导航到另一个页面。我需要在导航到另一个页面之前执行一些逻辑。
例如:登录页面。成功登录后,用户不应返回登录页面。此外,通过单击“登录”按钮,它应该调用一个函数来处理登录并决定导航/不导航到另一个页面。
有什么方法可以使用 Angular 路由器实现此目的,还是需要依赖已弃用的 Ionic NavController?
例如,登录页面是根页面('/login'),单击登录按钮后导航到新页面,如下所示:
onLogin() {
this.router.navigateByUrl('/profile', { replaceUrl: true })
}
它将页面历史记录条目替换为新的 URL,在本例中为'/profile'
。使用普通后<ion-back-button></ion-back-button>
或浏览器的后退按钮,您不会被重定向到登录页面,而是重定向到上一页。假设您的页面导航是这样的:主页 -> 登录 -> 个人资料,但历史只会记住首页 -> 公司简介,从而按下后退按钮profile页面将带您返回主页。
对于完整的解决方案,您可以将其与角路线守卫,以防止基于某些条件(例如用户已登录)访问页面。可以在以下位置找到如何操作的提示这个答案.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)