notifications.update()

Aktualisiert eine Benachrichtigung, basierend auf ihrer ID.

Dies ist eine asynchrone Funktion, die ein Promise zurückgibt.

Syntax

js
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 von notifications.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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Firefox for Android
Safari on iOS
update

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.

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.

js
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.