我们如何检测用户何时关闭浏览器?

时间:2016-06-05 13:42:39

标签: angular

我的意思是,我想跟踪用户何时离开应用,关闭浏览器或标签页。

组件和指令有一个名为ngOnDestroy的生命周期钩子,当组件被销毁时会被调用,但是当用户离开应用程序时它就会被捕获

import { Component, OnInit } from '@angular/core';

@Component({
  moduleId: module.id,
  selector: 'app',
  templateUrl: 'app.component.html'
})
export class AppComponent implements OnDestroy {
  constructor() { }

  ngOnDestroy() {
      alert(`I'm leaving the app!`);
  }

}

如果用户关闭浏览器,则不会执行警报。

1 个答案:

答案 0 :(得分:32)

您可以收听此类unloadbeforeunload事件:

export class AppComponent {
  @HostListener('window:unload', [ '$event' ])
  unloadHandler(event) {
    // ...
  }

  @HostListener('window:beforeunload', [ '$event' ])
  beforeUnloadHander(event) {
    // ...
  }
}

另见