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

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.

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.