【发布时间】:2023-02-09 21:25:29
【问题描述】:
我正在用 ionic/angular 开发一个 pwa,我在使用来自 Android 的 pwa 的选项卡时遇到问题。基本上有 3 个选项卡: 主页 |购物 |收藏夹
然后每个选项卡都包含子路径。问题是,例如,如果我在主页/关于我点击购物,然后我再次点击主页,然后多次点击购物等。这会导致在 window.history 中输入新状态,如果我使用 Android 硬件后退按钮,它会让我在 home/about 和 Shopping 之间导航几次。相反,我想要以下情况:如果我在购物,我会回到家/大约,然后回家,然后应用程序关闭。这可行吗? 我尝试同时使用路由器对象的 skipLocationChange 和 replaceUrl,例如:
export class TabsPage {
constructor(private router: Router) {}
goToShopping(){
this.router.navigate(["/tabs/shopping"], {replaceUrl: true})
}
}
标签模板:
<ion-tabs>
<ion-tab-bar slot="bottom" (click)="goToHome()">
<ion-tab-button tab="home">
<ion-icon name="home"></ion-icon>
<ion-label>Home</ion-label>
</ion-tab-button>
<ion-tab-button tab="shopping" (click)="goToShopping()">
<ion-icon name="card"></ion-icon>
<ion-label>Shopping</ion-label>
</ion-tab-button>
<ion-tab-button tab="favourites" (click)="goToFavourites()">
<ion-icon name="star"></ion-icon>
<ion-label>Favourites</ion-label>
</ion-tab-button>
</ion-tab-bar>
</ion-tabs>
但是,有了这个,如果我在主页/关于然后单击购物选项卡并按硬件后退按钮它会转到主页,因为它正确地将当前状态的关于替换为购物
【问题讨论】:
标签: angular ionic-framework progressive-web-apps browser-history