MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

NotificationEvent

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

L'interface NotificationEvent représente un évènement de clic pour une notification et qui est dispatché vers le ServiceWorkerGlobalScope d'un ServiceWorker.

Cette interface hérite de l'interface ExtendableEvent.

Constructeur

NotificationEvent.NotificationEvent()
Cette méthode permet de créer un nouvel objet NotificationEvent.

Propriétés

Cet objet hérite de propriétés grâce à son ancêtre : Event.

NotificationEvent.notification Lecture seule
Cette propriété renvoie un objet Notification représentant la notification sur laquelle on a cliqué pour déclencher l'évènement.
NotificationEvent.action Lecture seule
Cette propriété renvoie une chaîne de caractères identifiant le bouton de la notification sur lequel l'utilisateur a cliqué. Cette valeur sera undefined si l'utilisateur a cliqué autre part que sur le bouton pour la notification ou si la notification ne possède pas de bouton.

Méthodes

Cet objet hérite de méthodes grâce à son parent ExtendableEvent.

ExtendableEvent.waitUntil()

Cette méthode allonge la durée de vie de l'évènement. Elle est conçue pour être appelée dans le gestionnaire d'évènement install lors de l'installation (cf. ServiceWorkerRegistration.installing) du worker et dans le gestionnaire d'évènement active pour le worker actif (cf. ServiceWorkerRegistration.active).

Exemples

self.addEventListener('notificationclick', function(event) {
  console.log('Au clic sur la notification : ', event.notification.tag);
  event.notification.close();

  // On regarde ici si elle est déjà ouverte 
  // et si le focus est dessus
  event.waitUntil(clients.matchAll({
    type: "window"
  }).then(function(clientList) {
    for (var i = 0; i < clientList.length; i++) {
      var client = clientList[i];
      if (client.url == '/' && 'focus' in client)
        return client.focus();
    }
    if (clients.openWindow)
      return clients.openWindow('/');
  }));
});

Spécifications

Spécification État Commentaires
Notifications API
La définition de 'NotificationEvent' dans cette spécification.
Standard évolutif  

Note : Cette interface est définie au sein de l'API Notifications, mais on y accède via ServiceWorkerGlobalScope.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 42 44.0 (44.0)[1] ? ? ?
action 48 ? ? ? ?
Fonctionnalité Android Webview Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome pour Android
Support simple Pas de support Pas de support 44.0 (44.0) ? ? ? 42
action Pas de support Pas de support ? ? ? ? 48

[1] Les service workers (ainsi que l'API Push) ont été désactivés dans l'édition Firefox 45 Extended Support Release (ESR).

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, dzlabs
 Dernière mise à jour par : SphinxKnight,