2016-06-05 17 views
8

To znaczy, chcę śledzić, kiedy użytkownik opuszcza aplikację, zamyka przeglądarkę lub karty.Jak możemy wykryć, kiedy użytkownik zamyka przeglądarkę?

Komponenty i dyrektyw ma hak cyklem o nazwie ngOnDestroy, która jest wywoływana, gdy element jest zniszczony, ale nie może złapać, gdy użytkownik opuszcza App

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!`); 
    } 

} 

Jeśli użytkownik zamknie przeglądarkę, alert nie jest wykonywany.

Odpowiedz

16

Można słuchać unload lub beforeunload zdarzeń tak:

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

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

Zobacz także

+0

jest PO Aby uzyskać tylko kartę/przeglądarkę zamknij. – CTN

+0

AFAIK jest tylko 'unload' i' beforeunload'. Może być kilka sztuczek lub hacków, aby uzyskać więcej informacji, ale nie mam pojęcia. –

+0

Jeśli znajdziesz jakiś zasób poinformuj mnie. Dzięki za szybką odpowiedź. :) – CTN

Powiązane problemy