用户离开应用时删除会话存储

时间:2017-07-04 08:49:16

标签: angular angular2-services session-storage

我想在用户关闭我的应用程序时执行以下代码。

ngOnDestroy(): void {
    sessionStorage.clear();
}
  

简而言之,一旦用户离开我的应用程序,我想清除应用程序的sessionStorage,但是当用户刷新应用程序时,数据将被保留。

应用程序关闭时,OnDestroy似乎不会触发。

我也试过以下代码

ngOnInit() {
   window.onbeforeunload = function () {
     sessionStorage.clear();
     return ''
   }
}

我知道这不是正确的地方,但是关于刷新的这个明确数据:(而且这在每个浏览器中都不起作用。

我可以在哪里放置此代码以获取我正在寻找的行为,还是有更好的方法来完成我想要完成的任务?

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

import { HostListener } from '@angular/core';
    @HostListener('window:unload', ['$event'])
    unloadHandler(event) {
        window.sessionStorage.clear();
    }

将其添加到您的组件中(不一定在ngOnInit内)。每当您关闭浏览器或选项卡时,这将清除sessionStorage