首页 > 解决方案 > Angular——处理页面刷新

问题描述

我的客户需要在应用程序的 Angular 前端中使用一种机制,例如 - 当用户关闭浏览器选项卡或浏览器本身时,用户应该在组织的 SSO 级别注销,这将使用户重新登录,当他/她再次请求该应用程序。

我通过使用pagehide事件来做到这一点,以这种方式:

export class HomepageComponent implements OnInit {

  ngOnInit(): void {
    this.subscribeToNativeNavigation();
  }
  
  private subscribeToNativeNavigation() {

    fromEvent(window, "pagehide").subscribe(() => {
    
        const message = "You may lose your data if you refresh now";
        window.event.returnValue = !!message;     
         
        //do the necessary session storage cleanups and other resets
        //fire an explicit logout request to the organization's SSO
          
        return message;
    });
  }
}

需求:
上面的代码片段适用于浏览器选项卡或浏览器关闭,但该pagehide事件似乎也被触发以进行浏览器刷新 - 这是客户端不想要的。换句话说,浏览器选项卡关闭(或浏览器关闭)需要按原样处理,但浏览器刷新不应通过上述代码段(即用户不得注销)

有没有办法在仍然使用的同时实现这一点,pagehide或者我应该处理不同的事件?还是我完全错了?请指教。

标签: angular

解决方案


推荐阅读