notifications.update()
Aktualisiert eine Benachrichtigung, basierend auf ihrer ID.
Dies ist eine asynchrone Funktion, die ein Promise
zurückgibt.
Syntax
let updating = browser.notifications.update(
id, // string
options // NotificationOptions
)
Parameter
id
-
string
. Die ID der zu aktualisierenden Benachrichtigung. Diese ist identisch mit der ID, die in den Rückruf vonnotifications.create()
übergeben wurde. options
-
notifications.NotificationOptions
. Definiert den neuen Inhalt und das Verhalten der Benachrichtigung.
Rückgabewert
Ein Promise
, das mit einem boolean erfüllt wird: true
, wenn die Benachrichtigung aktualisiert wurde, oder false
, wenn sie nicht aktualisiert wurde (zum Beispiel, weil die durch id
referenzierte Benachrichtigung nicht existierte).
Browser-Kompatibilität
BCD tables only load in the browser
Beispiele
Dieses Beispiel verwendet update()
, um eine Fortschrittsbenachrichtigung zu aktualisieren. Ein Klick auf die Browser-Aktion zeigt die Benachrichtigung und startet einen Alarm
, den wir verwenden, um den Fortschrittsindikator der Benachrichtigung zu aktualisieren.
Beachten Sie, dass Sie die Berechtigung „alarms“ benötigen, um Alarme zu erstellen (sowie die Berechtigung „notifications“, um Benachrichtigungen zu erstellen). Beachten Sie auch, dass Firefox das progress
-Attribut nicht unterstützt.
let cakeNotification = "cake-notification";
/*
CAKE_INTERVAL is set to 0.3 seconds in this example.
Such a short period is chosen to make the extension's behavior
more obvious, but this is not recommended in real life.
Note that in Chrome, alarms cannot be set for less than
a minute.
*/
let CAKE_PREP_INTERVAL = 0.005;
let progress = 0;
browser.alarms.onAlarm.addListener((alarm) => {
progress += 10;
if (progress > 100) {
browser.notifications.clear(cakeNotification);
browser.alarms.clear("cake-progress");
} else {
browser.notifications.update(cakeNotification, { progress });
}
});
browser.browserAction.onClicked.addListener(() => {
browser.notifications.getAll((all) => {
if (all.length > 0) {
browser.notifications.clear(cakeNotification);
return;
}
progress = 0;
browser.notifications.create(cakeNotification, {
type: "progress",
iconUrl: browser.extension.getURL("icons/cake-48.png"),
title: "Your cake is being prepared…",
message: "Something something cake",
progress,
});
browser.alarms.create("cake-progress", {
periodInMinutes: CAKE_PREP_INTERVAL,
});
});
});
Hinweis: Diese API basiert auf der chrome.notifications
API von Chromium.