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

Gag*_*ags 1 session-storage angular2-services angular

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

ngOnDestroy(): void {
    sessionStorage.clear();
}
Run Code Online (Sandbox Code Playgroud)

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

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

我也试过下面的代码

ngOnInit() {
   window.onbeforeunload = function () {
     sessionStorage.clear();
     return ''
   }
}
Run Code Online (Sandbox Code Playgroud)

我知道这不是正确的地方,但刷新时也有清晰的数据:(而且这不适用于每个浏览器。

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

Has*_*eoh 5

你可以试试这个:

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

将它添加到你的组件中(不一定在里面ngOnInit)。sessionStorage每当您关闭带有应用程序的浏览器或选项卡时,这将清除。

  • 不,对不起。当我刷新页面时,它还清除会话存储 (2认同)