Ich habe ein Modal, das zuerst erscheint fragt, ob der Benutzer spezielle Angebote erhalten möchte, wenn sie ja klicken, dann ziehe ich den Code für Push-Benachrichtigungen, so dass sie Benachrichtigungen zulassen können. Wenn sie bereits Benachrichtigungen erlaubt haben, möchte ich nicht, dass das Modal erscheint. Ich bin auf der Suche nach einer Möglichkeit zu überprüfen, ob Benachrichtigungen vom Nutzer bereits erlaubt wurden, mit Google Chrome.Wie überprüft man, ob Benachrichtigungen von Google Chrome-Nutzern bereits erlaubt sind?
2
A
Antwort
4
überprüfen Sie die permission
Eigenschaft des Objekts Mitteilung:
if (Notification.permission !== "granted") {
// ask for permission
1
Neben Notification.permission
wie Denys Séguret beantwortet gibt es die neueren, weniger gut unterstützt, aber allgemeinere Permissions API.
Hier ist ein schnelles Anwendungsbeispiel, basierend auf the one from MDN:
function handlePermission() {
return navigator.permissions
.query({name:'notifications'})
.then(permissionQuery)
.catch(permissionError);
}
function permissionQuery(result) {
console.debug({result});
var newPrompt;
if (result.state == 'granted') {
// notifications allowed, go wild
} else if (result.state == 'prompt') {
// we can ask the user
newPrompt = Notification.requestPermission();
} else if (result.state == 'denied') {
// notifications were disabled
}
result.onchange =() => console.debug({updatedPermission: result});
return newPrompt || result;
}
////
handlePermission();
+0
Danke! Ich werde es mir auch merken. – cmac
Vielen Dank! Funktioniert perfekt. – cmac
Auch Notification.permission! == "verweigert". – Satys