我有PWA和一个带有Ionic 5的移动应用程序。我单击电子邮件中的URL,该URL使用通用链接重定向我。
https://example.com/?param1=value1¶m2=value2
我的目标是在页面加载时使用params创建一个新对象,然后删除params并导航到下一页。我使用的位置看起来像这样。
this.route.queryParams.subscribe(
params => {
if (params.create) {
const navParams = params;
// Do something with params
this.location.replaceState("/");
this.navCtrl.navigateForward("/another-page/:id)
}
}
)
这一切都很好,参数被从URL中删除,但问题是当我使用ion-back-button
导航回来时,它会把我送回主页,但参数会再次加载。我猜queryParams并没有用this.location.replaceState("/")
完全清除。
在导航到下一页之前,我尝试了this.navCtrl.setRoot("")
,但没有成功。
你能给我建议吗?谢谢
尝试在执行this.navCtrl.navigateForward
:时导航到这样的页面
https://example.com/nextpage/?params
通过在两者之间添加nextpage
,它可以实现您想要实现的目标,但它会将额外的下一页添加到您的url 中
这样,当您返回导航时,上一个参数将消失。
不确定您是否设法解决了这个问题,但您可以尝试。。。
import { ActivatedRoute } from '@angular/router';
...
...
const paramValue = this.activatedRoute.snapshot.queryParamMap('paramKey');