Notification: Notification()-Konstruktor
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Der Notification()-Konstruktor erstellt eine neue Instanz des Notification-Objekts, die eine Benachrichtigung für Benutzer darstellt.
Warnung:
Dieser Konstruktor löst in fast allen mobilen Browsern einen TypeError aus.
Registrieren Sie stattdessen einen Service Worker und verwenden Sie ServiceWorkerRegistration.showNotification().
Syntax
new Notification(title)
new Notification(title, options)
Parameter
title-
Definiert einen Titel für die Benachrichtigung, der oben im Benachrichtigungsfenster angezeigt wird.
optionsOptional-
Ein Optionsobjekt mit benutzerdefinierten Einstellungen, die Sie auf die Benachrichtigung anwenden möchten. Folgende Optionen sind möglich:
actionsOptional-
Muss weggelassen werden oder ein leeres Array sein.
actionswird nur für dauerhafte Benachrichtigungen unterstützt, die von einem Service Worker mithilfe vonServiceWorkerRegistration.showNotification()ausgelöst werden. badgeOptional-
Eine Zeichenfolge mit der URL eines kleinen Symbols, das die Webanwendung selbst repräsentiert. Das Badge wird von der Plattform verwendet, wenn nicht genügend Platz vorhanden ist, um die vollständige Benachrichtigung anzuzeigen – beispielsweise in einer Statusleiste. Es sollte visuell weniger hervorgehoben sein als die Optionen
iconundimage. Unter Android sollte das Badge für eine bis zu vierfache Anzeigeauflösung ausgelegt sein (etwa 96 × 96 px); das Bild wird automatisch zu einer monochromen Silhouette maskiert. bodyOptional-
Eine Zeichenfolge mit dem Text der Benachrichtigung, der unter dem Titel angezeigt wird. Der Standardwert ist die leere Zeichenfolge.
dataOptional-
Beliebige Daten, die Sie mit der Benachrichtigung verknüpfen möchten. Dies kann jeder Datentyp sein, der sich strukturiert klonen lässt. Der Standardwert ist
null. dirOptional-
Die Richtung, in der die Benachrichtigung angezeigt wird. Der Standardwert ist
auto, wodurch das Verhalten der Spracheinstellung des Browsers übernommen wird. Sie können dieses Verhalten mit den Wertenltrundrtlüberschreiben (obwohl die meisten Browser diese Einstellungen offenbar ignorieren). iconOptional-
Eine Zeichenfolge mit der URL eines kleinen Bildes, das die Benachrichtigung visuell ergänzt – beispielsweise ein App-Logo oder ein Foto des Absenders einer Nachricht. Es wird neben dem Titel und dem Text der Benachrichtigung angezeigt.
imageOptional-
Eine Zeichenfolge mit der URL eines großen Bildes, das als Teil des Benachrichtigungsinhalts angezeigt wird – beispielsweise ein Nachrichtenfoto oder ein Produktvorschaubild. Es hat unter den drei Bildoptionen (
image,icon,badge) die höchste visuelle Priorität. Einen Vergleich dieser drei Bildoptionen finden Sie unter Benachrichtigungen mit verschiedenen Bildern. langOptional-
Die Sprache der Benachrichtigung, angegeben als Zeichenfolge, die einen BCP-47-Sprachtag darstellt. Der Standardwert ist die leere Zeichenfolge.
-
Eine Zeichenfolge mit einer URL, zu der navigiert wird, wenn der Benutzer die Benachrichtigung aktiviert. Wenn diese Option gesetzt ist, navigiert der User Agent zu dieser URL, anstatt das
click-Ereignis auszulösen. Der Wert wird relativ zur Basis-URL der Seite interpretiert. Weitere Informationen finden Sie unterNotification.navigate. renotifyOptional-
Ein boolescher Wert, der angibt, ob der Benutzer benachrichtigt werden soll, nachdem eine neue Benachrichtigung eine alte ersetzt hat. Der Standardwert ist
false; der Benutzer wird also nicht erneut benachrichtigt. Wenn der Werttrueist, muss auchtaggesetzt sein. requireInteractionOptional-
Gibt an, dass eine Benachrichtigung aktiv bleiben soll, bis der Benutzer darauf klickt oder sie schließt, anstatt automatisch geschlossen zu werden. Der Standardwert ist
false. silentOptional-
Ein boolescher Wert, der angibt, ob die Benachrichtigung lautlos sein soll, also unabhängig von den Geräteeinstellungen weder Töne noch Vibrationen auslösen soll. Bei
trueist die Benachrichtigung lautlos; beinull(dem Standardwert) gelten die Standardeinstellungen des Geräts. tagOptional-
Eine Zeichenfolge, die eine Kennzeichnung für die Benachrichtigung darstellt. Der Standardwert ist die leere Zeichenfolge.
timestampOptional-
Ein als Unix-Zeit in Millisekunden angegebener Zeitstempel für den Zeitpunkt, der mit der Benachrichtigung verknüpft ist. Dieser Zeitpunkt kann in der Vergangenheit liegen, wenn die Benachrichtigung eine Nachricht betrifft, die wegen eines offline befindlichen Geräts nicht sofort zugestellt werden konnte. Er kann auch in der Zukunft liegen, etwa bei einer Besprechung, die in Kürze beginnt.
vibrateOptional-
Ein Vibrationsmuster, das die Vibrationshardware des Geräts zusammen mit der Benachrichtigung ausgibt. Wenn diese Option angegeben ist, darf
silentnichttruesein.
Rückgabewert
Eine Instanz des Notification-Objekts.
Ausnahmen
TypeError-
Wird ausgelöst, wenn:
- der Konstruktor innerhalb des
ServiceWorkerGlobalScopeaufgerufen wird; - die Option
actionsangegeben und nicht leer ist; - die Option
silentden Werttruehat und die Optionvibrateangegeben ist; - die Option
renotifyden Werttruehat, die Optiontagaber leer ist.
- der Konstruktor innerhalb des
DataCloneErrorDOMException-
Wird ausgelöst, wenn die Serialisierung der Option
dataaus irgendeinem Grund fehlschlägt.
Beschreibung
Der Konstruktor erstellt eine neue Instanz des Notification-Objekts, die eine Benachrichtigung für Benutzer darstellt.
Sie müssen mit Notification.requestPermission() die Berechtigung zum Anzeigen von Benachrichtigungen einholen.
Die Berechtigung kann möglicherweise nicht erteilt werden, beispielsweise wenn sich die Seite im privaten Browsermodus befindet.
Dieser Konstruktor löst in fast allen mobilen Browsern einen TypeError aus. Daran wird sich voraussichtlich nichts ändern, da Webseiten auf Mobilgeräten fast nie „im Hintergrund ausgeführt werden“ – dem wichtigsten Anwendungsfall für Benachrichtigungen.
Registrieren Sie stattdessen einen Service Worker und verwenden Sie ServiceWorkerRegistration.showNotification().
Weitere Informationen finden Sie unter Chrome-Issue #481856.
Beispiele
Weitere Beispiele finden Sie auf der Seite zu Notification und unter Verwendung der Notifications API.
Einfaches Beispiel
Dieses einfache Beispiel zeigt eine Benachrichtigung an, wenn die Berechtigung bereits erteilt wurde. Auf Mobilgeräten funktioniert es nicht.
if (Notification.permission === "granted") {
const notification = new Notification("Hi there!");
}
Notification() als Fallback verwenden
Dieses Beispiel zeigt einen robusteren Ansatz, mit dem Benachrichtigungen sowohl auf Desktop- als auch auf Mobilgeräten angezeigt werden können.
Zuerst prüfen wir, ob Notification unterstützt wird und ob die Berechtigung erteilt wurde. Ist eine der beiden Bedingungen nicht erfüllt, beenden wir die Ausführung vorzeitig.
Anschließend prüfen wir, ob ein aktiver Service Worker vorhanden ist.
Falls ja, verwenden wir ihn, um ServiceWorkerRegistration.showNotification() aufzurufen; andernfalls greifen wir auf den Konstruktor zurück.
Beachten Sie, dass auch dieser Ansatz auf einem Mobilgerät einen Fehler auslöst, wenn für die Seite kein Service Worker bereitsteht.
Je nach Anwendung können Sie diesen Code in einen try...catch-Block einschließen.
Spezifikationen
| Spezifikation |
|---|
| Notifications API> # dom-notification-notification> |