Signatur
Beschreibung
Die schreibgeschützte Eigenschaft renotify des Notification-Interfaces liefert einen booleschen Wert. Er gibt an, ob der Benutzer beim Ersetzen einer bestehenden Benachrichtigung erneut aufmerksam gemacht wird. Gesetzt wird der Wert über die Option renotify im Konstruktor new Notification(title, options) oder in ServiceWorkerRegistration.showNotification().
Wichtig ist das Zusammenspiel mit der Option tag: Benachrichtigungen mit demselben tag ersetzen sich gegenseitig, statt sich zu stapeln. Normalerweise passiert das still, die alte Meldung wird also ohne Ton oder Vibration aktualisiert. Mit renotify: true macht der Browser den Benutzer auch bei der Ersetzung wieder aufmerksam. Das passt zum Beispiel zu Chat-Apps, die eine einzige Meldung „3 neue Nachrichten“ laufend aktualisieren und bei jeder neuen Nachricht trotzdem einen Ton abspielen sollen.
Der Standardwert ist false. Wer renotify: true ohne einen nicht leeren tag angibt, bekommt einen TypeError, weil es dann nichts zu ersetzen gibt.
Rückgabewert
true, wenn der Benutzer beim Ersetzen einer gleich getaggten Benachrichtigung erneut benachrichtigt wird, sonst false (Standard).Beispiele
Chat-Benachrichtigung mit erneutem Hinweis aktualisieren
const showChatNotification = async (count) => {
if (Notification.permission !== 'granted') {
const result = await Notification.requestPermission();
if (result !== 'granted') return;
}
const n = new Notification('Neue Nachrichten', {
body: `${count} ungelesene Nachricht(en)`,
tag: 'chat-unread', // gleicher Tag ersetzt die alte Meldung
renotify: true // trotzdem Ton/Vibration auslösen
});
console.log(n.tag, n.renotify);
};
showChatNotification(3);
Eigenschaft auslesen und Unterstützung prüfen
const supportsRenotify = 'renotify' in Notification.prototype;
console.log('renotify unterstützt:', supportsRenotify);
const n = new Notification('Download', {
body: 'Fortschritt: 40 %',
tag: 'download-42'
});
// ohne Angabe ist der Wert false (bzw. undefined ohne Unterstützung)
console.log(n.renotify);
Im Service Worker bei Push-Nachrichten verwenden
// sw.js
self.addEventListener('push', (event) => {
const data = event.data?.json() ?? { title: 'Update', body: '' };
event.waitUntil(
self.registration.showNotification(data.title, {
body: data.body,
tag: 'news-feed',
renotify: true
}).then(async () => {
const list = await self.registration.getNotifications({ tag: 'news-feed' });
console.log('renotify:', list[0]?.renotify);
})
);
});
Fehler: renotify ohne tag
try {
new Notification('Test', { renotify: true });
} catch (err) {
console.log(err.name);
}
// Wichtig · Fallstricke
- Nur lesbar:
notification.renotify = truehat keine Wirkung. Der Wert lässt sich nur beim Erstellen über die Optionen festlegen. - Ohne
taggibt es einen Fehler:renotify: truemit leerem oder fehlendemtagwirft einenTypeError. - Browser-Kompatibilität: Die Eigenschaft ist experimentell und wird derzeit nur von Chromium-Browsern unterstützt. Firefox und Safari ignorieren die Option, dort ist die Eigenschaft
undefined. Vor der Nutzung mit'renotify' in Notification.prototypeprüfen. - Stumme Benachrichtigungen: In Kombination mit
silent: trueist die Kombination widersprüchlich. Die Spezifikation verbietet sie, Browser werfen dann einenTypeError. - Nur sichere Kontexte: Die Notifications API funktioniert nur über HTTPS und erst, wenn der Benutzer die Berechtigung erteilt hat.
- Sparsam einsetzen: Häufige erneute Hinweise stören die Benutzer und verleiten sie dazu, die Berechtigung zu entziehen.