Как мы можем определить, когда пользователь закрывает браузер?

Я хочу отслеживать, когда пользователь покидает приложение, закрывает браузер или вкладки.

Компоненты и директивы имеют хук жизненного цикла, называемый 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)

Вы можете слушатьunload или жеbeforeunload события как это:

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

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

Смотрите также

JavaScript обнаруживает браузер закрыть вкладку / закрыть браузерhttps://developer.mozilla.org/de/docs/Web/Events/unload
 radio_head15 июн. 2017 г., 18:19
@ GünterZöchbauer Вышеуказанный метод не работает для меня ... я поставил предупреждение, но он не срабатывает .. прямоугольная версия 2.4.10
 jpgrassi02 окт. 2017 г., 18:49
Предупреждение никогда не будет отображаться .. так как диалог к ​​тому времени исчезнет. Установите точку останова на инструментах разработчика, чтобы вы могли видеть, что она срабатывает.
 CTN20 мар. 2017 г., 12:51
можно закрыть только вкладку / браузер.
 CTN21 мар. 2017 г., 05:58
Если вы найдете какой-либо ресурс, сообщите мне. Спасибо за быстрый ответ. :)
 Günter Zöchbauer20 мар. 2017 г., 14:14
AFAIK есть толькоunload а такжеbeforeunload, Там могут быть некоторые хитрости или взломы, чтобы получить больше информации, но я ничего не знаю о.

Ваш ответ на вопрос