notifications.update()
Aktualisiert eine Benachrichtigung anhand 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 dieselbe ID, die im Callback 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 nicht (zum Beispiel, weil die durch id
referenzierte Benachrichtigung nicht existierte).
Beispiele
Dieses Beispiel verwendet update()
, um eine Fortschrittsbenachrichtigung zu aktualisieren. Beim Klicken auf die Browseraktion wird die Benachrichtigung angezeigt und ein alarm
gestartet, den wir nutzen, um den Fortschrittsindikator der Benachrichtigung zu aktualisieren.
Beachten Sie, dass Sie die "alarms"-Berechtigung benötigen, um Alarme zu erstellen (sowie die "notifications"-Berechtigung, 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,
});
});
});
Browser-Kompatibilität
Hinweis:
Diese API basiert auf der chrome.notifications
-API von Chromium.