notifications.update()

Met à jour une notification, compte tenu de son identifiant

C'est une fonction asynchrone qui renvoie une Promise.

Syntaxe

js
var updating = browser.notifications.update(
  id, // string
  options, // NotificationOptions
);

Paramètres

id

string. L'ID de la notification à mettre à jour. C'est la même chose que l'ID transmis dans le callback notifications.create().

options

notifications.NotificationOptions. Définit le nouveau contenu et le nouveau comportement de la notification.

Valeur retournée

Une Promise qui sera remplie avec un booléen : true si la notification a été mise à jour, ou false si ce n'est pas le cas (par exemple, parce que la notification référencée par id n'existe pas).

Compatibilité des navigateurs

BCD tables only load in the browser

Exemples

Cet exemple utilise update() pour mettre à jour une notification de progression. Cliquez sur l'action du navigateur pour afficher la notification et lancer un alarm, que nous utilisons pour mettre à jour l'indicateur de progression de la notification.

Notez que vous aurez besoin de la permission "alarms" pour créer des alarmes (ainsi que de la permission "notifications" pour créer des notifications). Notez également que Firefox ne prend pas en charge l'attribut de progress.

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

*/
var CAKE_PREP_INTERVAL = 0.005;

var progress = 0;

browser.alarms.onAlarm.addListener(function (alarm) {
  progress = progress + 10;
  if (progress > 100) {
    browser.notifications.clear(cakeNotification);
    browser.alarms.clear("cake-progress");
  } else {
    browser.notifications.update(cakeNotification, {
      progress: progress,
    });
  }
});

browser.browserAction.onClicked.addListener(function () {
  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: progress,
    });
    browser.alarms.create("cake-progress", {
      periodInMinutes: CAKE_PREP_INTERVAL,
    });
  });
});

Note :

Cette API est basée sur l'API Chromium chrome.notifications.

Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.