2

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?

Antwort

4

überprüfen Sie die permission Eigenschaft des Objekts Mitteilung:

if (Notification.permission !== "granted") { 
    // ask for permission 
+0

Vielen Dank! Funktioniert perfekt. – cmac

+1

Auch Notification.permission! == "verweigert". – Satys

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

Verwandte Themen