Notification: requestPermission() statische Methode
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die requestPermission()
statische Methode des Notification
-Interfaces fordert die Erlaubnis des Benutzers an, um Benachrichtigungen für die aktuelle Herkunft anzeigen zu dürfen.
Die Methode gibt ein Promise
zurück, das mit einem String erfüllt wird, der angibt, ob die Erlaubnis erteilt oder verweigert wurde.
Syntax
Notification.requestPermission()
// Deprecated syntax using a callback
Notification.requestPermission(callback)
Parameter
Rückgabewert
Ein Promise
, das sich zu einem String mit der vom Benutzer ausgewählten Erlaubnis auflöst. Mögliche Werte für diesen String sind:
granted
-
Der Benutzer hat ausdrücklich die Erlaubnis für die aktuelle Herkunft erteilt, Systembenachrichtigungen anzuzeigen.
denied
-
Der Benutzer hat ausdrücklich die Erlaubnis für die aktuelle Herkunft verweigert, Systembenachrichtigungen anzuzeigen.
default
-
Die Entscheidung des Benutzers ist unbekannt; in diesem Fall verhält sich die Anwendung so, als wäre die Erlaubnis
denied
.
Die veraltete Version der Methode gibt undefined
zurück.
Beispiele
Angenommen, wir haben dieses grundlegende HTML:
<button onclick="notifyMe()">Notify me!</button>
Es ist möglich, eine Benachrichtigung wie folgt zu senden — hier präsentieren wir einen ziemlich umfangreichen und vollständigen Satz von Code, den Sie verwenden könnten, wenn Sie zuerst überprüfen möchten, ob Benachrichtigungen unterstützt werden, dann überprüfen, ob die Erlaubnis für die aktuelle Herkunft erteilt wurde, dann, wenn erforderlich, die Erlaubnis anfordern, bevor Sie eine Benachrichtigung senden.
Beachten Sie, dass die Anfrage als Reaktion auf eine Benutzerinteraktion erfolgen sollte: unten wird die Methode im Klick-Event-Handler aufgerufen.
function notifyMe() {
if (!("Notification" in window)) {
// Check if the browser supports notifications
alert("This browser does not support desktop notification");
} else if (Notification.permission === "granted") {
// Check whether notification permissions have already been granted;
// if so, create a notification
const notification = new Notification("Hi there!");
// …
} else if (Notification.permission !== "denied") {
// We need to ask the user for permission
Notification.requestPermission().then((permission) => {
// If the user accepts, let's create a notification
if (permission === "granted") {
const notification = new Notification("Hi there!");
// …
}
});
}
// At last, if the user has denied notifications, and you
// want to be respectful there is no need to bother them anymore.
}
Wir zeigen kein Live-Beispiel mehr auf dieser Seite, da Chrome und Firefox nicht mehr erlauben, dass Benachrichtigungsberechtigungen von Cross-Origin-<iframe>
s angefordert werden, und andere Browser werden folgen. Um ein Beispiel in Aktion zu sehen, schauen Sie sich unser To-do-Liste-Beispiel an (siehe auch die Anwendung live).
Spezifikationen
Specification |
---|
Notifications API Standard # dom-notification-requestpermission |
Browser-Kompatibilität
BCD tables only load in the browser