Ich versuche eine Website zu erstellen, die Benachrichtigungen anzeigt, wenn ein Ereignis eintritt. Ich habe the MDN page for Notifications überprüft und ich habe ein Beispiel geschrieben, das in Firefox Developer Edition 58.0b7 funktioniert, aber hat ein seltsames Verhalten in Edge 40.15063.674.0 und Chrome 62.0.3202.94 (in Windows 10).So zeigen Sie Benachrichtigungen über Browser hinweg an
ist hier ein Mindest vollständige nachprüfbare Beispiel:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>test</title>
</head>
<body>
<script>
function notify(str) {
if(!("Notification" in window) || Notification.permission === "deneided") {
return alert(str);
}
if (Notification.permission === "granted") {
return new Notification("TITLE", {body: str});
}
Notification.requestPermission().then(perm => {
console.log("request result", perm);
console.log("Notification.permission", Notification.permission);
if (perm === "granted") {
return new Notification("TITLE", {body: str});
}
});
}
notify("test");
</script>
</body>
</html>
Speichern dieser Code in einer Datei auf Ihrem Computer und öffnen Sie sie mit einem Browser.
"granted"
zurückgegeben hat, aber immer noch "Standard" ist und die Benachrichtigung nicht angezeigt wird. Wenn Sie erneut notify
ausführen, wird ein weiterer Dialog angezeigt, der nach Berechtigungen zum Anzeigen von Benachrichtigungen fragt.granted
, aber der Versuch, eine neue Benachrichtigung zu erstellen, führt zu einem UnknownError
.Warum funktioniert der Code in Firefox, aber nicht in Edge oder Chrome? Wie kann ich es zumindest in Chrome (und hoffentlich in Edge) zum Laufen bringen?
Code in Chrom Ergebnisse in dem gleichen Ergebnis wie mein Code. Die Benachrichtigung wird nicht angezeigt, und "Notification.permission" ist auch nach dem erneuten Laden der Seite immer noch "default". – Hawkings