Spec-Zone.ru › Web Extensions

notifications.update()

Обновляет уведомление по его идентификатору.

Это асинхронная функция, которая возвращает Promise.

Синтаксис

let updating = browser.notifications.update(
  id,                            // string
  options                        // NotificationOptions
)

Параметры

id

string. Идентификатор уведомления, которое нужно обновить. Он совпадает с идентификатором, переданным в обратный вызов notifications.create().

options

notifications.NotificationOptions. Определяет новое содержимое и поведение уведомления.

Возвращаемое значение

A Promise, который будет выполнен с булевым значением: true если уведомление было обновлено, или false если не было (например, потому что уведомление, на которое ссылается id, не существовало).

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet
update 28 17 Нет ?
25Не поддерживается на macOS.
Нет ? ? Нет ? Нет ?

Примеры

В этом примере используется update() для обновления уведомления о прогрессе. Нажатие на действие браузера отображает уведомление и запускает alarm, которое используется для обновления индикатора прогресса уведомления.

Обратите внимание, что вам потребуется разрешение «alarms» разрешение для создания будильников (а также разрешение «notifications» для создания уведомлений). Также обратите внимание, что Firefox не поддерживает атрибут progress.

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 }
    );
  });
});

Примечание: Этот API основан на API chrome.notifications от Chromium.

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications/update

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API