Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

NotificationEvent

Baseline Weitgehend verfügbar *

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2023 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Hinweis: Diese Funktion ist nur in Service Workers verfügbar.

Das NotificationEvent Interface der Notifications API repräsentiert ein Benachrichtigungsereignis, das im ServiceWorkerGlobalScope eines ServiceWorker ausgelöst wird.

Dieses Interface erbt vom ExtendableEvent Interface.

Hinweis: Nur persistente Benachrichtigungsereignisse, die im ServiceWorkerGlobalScope Objekt ausgelöst werden, implementieren das NotificationEvent Interface. Nicht-persistente Benachrichtigungsereignisse, die im Notification Objekt ausgelöst werden, implementieren das Event Interface.

Event ExtendableEvent NotificationEvent

Konstruktor

NotificationEvent()

Erstellt ein neues NotificationEvent-Objekt.

Instanz-Eigenschaften

Erbt auch Eigenschaften von seinem Eltern-Interface, ExtendableEvent.

NotificationEvent.notification Schreibgeschützt

Gibt ein Notification-Objekt zurück, das die Benachrichtigung repräsentiert, die angeklickt wurde, um das Ereignis auszulösen.

NotificationEvent.action Schreibgeschützt

Gibt die Zeichenfolgen-ID des Benachrichtigungsschalters zurück, den der Benutzer angeklickt hat. Dieser Wert gibt eine leere Zeichenfolge zurück, wenn der Benutzer die Benachrichtigung an einer anderen Stelle als auf einer Aktionstaste angeklickt hat oder die Benachrichtigung keine Taste hat.

Instanz-Methoden

Erbt auch Methoden von seinem Eltern-Interface, ExtendableEvent.

Beispiel

js
self.addEventListener("notificationclick", (event) => {
  console.log(`On notification click: ${event.notification.tag}`);
  event.notification.close();

  // This looks to see if the current is already open and
  // focuses if it is
  event.waitUntil(
    clients
      .matchAll({
        type: "window",
      })
      .then((clientList) => {
        for (const client of clientList) {
          if (client.url === "/" && "focus" in client) return client.focus();
        }
        if (clients.openWindow) return clients.openWindow("/");
      }),
  );
});

Spezifikationen

Spezifikation
Notifications API
# notificationevent

Hinweis: Dieses Interface ist in der Notifications API spezifiziert, wird aber über ServiceWorkerGlobalScope aufgerufen.

Browser-Kompatibilität