如何在退出 Angular 应用程序之前运行代码?

问题描述 投票:0回答:1

当用户退出角度应用程序而不按注销(关闭选项卡或浏览器)时,我试图在本地存储中添加一些内容。

这是我尝试过的:

   @HostListener('window:UnloadHander', ['$event'])
    beforeUnloadHander(event:any) {
    return localStorage.setItem("theflag","2");
  }

它不起作用,如何让它起作用?

onbeforeunload angular16 unload
1个回答
0
投票

我找到了解决方案。在我的主要组件中,我有:

if ((localStorage.getItem("theflag") === "2") && (sessionStorage.getItem("userName")))
{
  localStorage.setItem("theflag","1");
  window.location.reload();
}

因此,当我注销时,我将检查等于 2 的标志,以便在登录时条件为 true,并且页面将重新加载一次,因为该值将更改为 1。

然后,如果我们关闭窗口或选项卡,我将执行以下操作。

this.context = this;
window.addEventListener("beforeunload", function (e) {
    this.localStorage.setItem("theflag","2");
});

这会将标志移回 2。

在我的注销中,我也将值更改为 2。

    onlogout()
  {
    localStorage.setItem('theflag', '2')

就是这样。我发现这对于这种情况很有用。

© www.soinside.com 2019 - 2024. All rights reserved.