在基于Angular6的PWA中,当我按下“后退”按钮时,它会转到上一页并再次返回同一页面

时间:2019-05-21 13:09:37

标签: typescript angular6 progressive-web-apps angular-router

我有一个基于Angular 6的PWA。我正在使用“ @ angular / router”中的Router。当我按下浏览器中的“后退”按钮时,它会返回到浏览器路径中的上一条路线,然后立即返回到同一页面。

我尝试了以下代码(在TypeScript中)。实现此代码后,我可以返回到一个级别,但之后不能。例如。

A页-> B页-> C页

当我从C页按回来时,它会转到B页,但是当我从B页按回来时,它什么也没走。

setupWindowHistoryTricks() {
    this.handleBackButton(true);
    window.addEventListener('popstate', this.handleBackButton);
}

handleBackButton (init) {
    var backPresses = 0;
    var isAndroid = navigator.userAgent.toLowerCase().indexOf("android") 
    > -1;
    var maxBackPresses = 2;
    if (init !== true) {
    if ( backPresses >= maxBackPresses) {
    backPresses++;
    window.history.back();
   }
    else {
    window.history.pushState({}, '');
  }
}

}

我希望当我在浏览器或电话上按回时,它应该返回到历史记录中的先前组件。

0 个答案:

没有答案