--- title: NotificationEvent slug: Web/API/NotificationEvent tags: - API - Experimental - Interface - Reference - ServiceWorker translation_of: Web/API/NotificationEvent ---
L'interface NotificationEvent
représente un évènement de clic pour une notification et qui est dispatché vers le {{domxref("ServiceWorkerGlobalScope")}} d'un {{domxref("ServiceWorker")}}.
Cette interface hérite de l'interface {{domxref("ExtendableEvent")}}.
NotificationEvent
.Cet objet hérite de propriétés grâce à son ancêtre : {{domxref("Event")}}.
Cet objet hérite de méthodes grâce à son parent {{domxref("ExtendableEvent")}}.
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 {{event("install")}} lors de l'installation (cf. {{domxref("ServiceWorkerRegistration.installing")}}) du worker et dans le gestionnaire d'évènement {{event("active")}} pour le worker actif (cf. {{domxref("ServiceWorkerRegistration.active")}}).
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écification | État | Commentaires |
---|---|---|
{{SpecName('Web Notifications','#notificationevent','NotificationEvent')}} | {{Spec2('Web Notifications')}} |
Note : Cette interface est définie au sein de l'API Notifications, mais on y accède via {{domxref("ServiceWorkerGlobalScope")}}.
{{Compat("api.NotificationEvent")}}