notifications.create()

Crée et affiche une notification.

Passez un notifications.NotificationOptions pour définir le contenu et le comportement de la notification.

Vous pouvez éventuellement fournir un ID pour la notification. Si vous omettez l'ID, un ID sera généré. Vous pouvez utiliser l'ID pour update ou clear la notification.

C'est une fonction asynchrone qui renvoie une Promise.

Si vous appelez notifications.create() plus d'une fois de suite, Firefox peut ne pas afficher de notification pour tout.

Syntaxe

var creating = browser.notifications.create(
  id,                   // optional string
  options               // NotificationOptions
)

Paramètres

idFacultatif
string. Ceci est utilis√© pour faire r√©f√©rence √† cette notification dans notifications.update(), notifications.clear(), et les √©couteurs d'√©v√©nements. Si vous omettez cet argument ou passez une cha√ģne vide, un nouvel ID sera g√©n√©r√© pour cette notification. Si l'ID que vous fournissez correspond √† l'ID d'une notification existante provenant de cette extension, l'autre notification sera effac√©e.
options
notifications.NotificationOptions. Définit le contenu et le comportement de la notification.

Valeur retournée

Une Promise qui sera remplie lorsque la notification est cr√©√©e et que le processus d'affichage a √©t√© d√©marr√©, avant que la notification ne s'affiche r√©ellement √† l'utilisateur. Il est rempli avec une cha√ģne repr√©sentant l'identifiant de la notification.

Compatibilité du navigateur

BCD tables only load in the browser

Exemples

Cr√©ez et affichez p√©riodiquement une notification de base √† l'aide d'un  alarm. En cliquant sur l'action du navigateur, la notification est rejet√©e.

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

var cakeNotification = "cake-notification"

/*

CAKE_INTERVAL is set to 6 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_INTERVAL = 0.1;

browser.alarms.create("", {periodInMinutes: CAKE_INTERVAL});

browser.alarms.onAlarm.addListener(function(alarm) {
  browser.notifications.create(cakeNotification, {
    "type": "basic",
    "iconUrl": browser.extension.getURL("icons/cake-96.png"),
    "title": "Time for cake!",
    "message": "Something something cake"
  });
});

browser.browserAction.onClicked.addListener(()=> {
  var clearing = browser.notifications.clear(cakeNotification);
  clearing.then(() => {
    console.log("cleared");
  });
});

Affichez une notification similaire, mais ajoutez des boutons nommant des g√Ęteaux et consignez le g√Ęteau s√©lectionn√© lorsque vous cliquez sur un bouton :

var cakeNotification = "cake-notification"

/*

CAKE_INTERVAL is set to 6 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_INTERVAL = 0.1;

var buttons = [
  {
    "title": "Chocolate"
  }, {
    "title": "Battenberg"
  }
];

browser.alarms.create("", {periodInMinutes: CAKE_INTERVAL});

browser.alarms.onAlarm.addListener(function(alarm) {
  browser.notifications.create(cakeNotification, {
    "type": "basic",
    "iconUrl": browser.extension.getURL("icons/cake-96.png"),
    "title": "Time for cake!",
    "message": "Something something cake",
    "buttons": buttons
  });
});

browser.browserAction.onClicked.addListener(()=> {
  var clearing = browser.notifications.clear(cakeNotification);
  clearing.then(() => {
    console.log("cleared");
  });
});

browser.notifications.onButtonClicked.addListener((id, index) => {
  browser.notifications.clear(id);
  console.log("You chose: " + buttons[index].title);
});

Example extensions

Remerciements :

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.