--- 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")}}