当用户退出角度应用程序而不按注销(关闭选项卡或浏览器)时,我试图在本地存储中添加一些内容。
这是我尝试过的:
@HostListener('window:UnloadHander', ['$event'])
beforeUnloadHander(event:any) {
return localStorage.setItem("theflag","2");
}
它不起作用,如何让它起作用?
我找到了解决方案。在我的主要组件中,我有:
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')
就是这样。我发现这对于这种情况很有用。