notifications.update()
Met à jour une notification, compte tenu de son identifiant
C'est une fonction asynchrone qui renvoie une Promise
.
Syntaxe
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 callbacknotifications.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
.
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.