Spec-Zone.ru › Web APIs

Регистрация ServiceWorker: метод showNotification()

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

Метод showNotification() интерфейса ServiceWorkerRegistration создаёт уведомление в активном service worker.

Синтаксис

showNotification(title)
showNotification(title, options)

Параметры

title

Определяет заголовок уведомления, отображаемый в верхней части окна уведомления.

options Необязательный

Объект опций, содержащий любые пользовательские настройки для уведомления. Возможные опции:

actions Необязательный Экспериментально

Массив действий для отображения в уведомлении, по умолчанию пустой массив. Каждый элемент массива может быть объектом со следующими членами:

action

Строка, идентифицирующая действие пользователя, отображаемое в уведомлении.

title

Строка с текстом действия, отображаемым пользователю.

icon Необязательный

Строка, содержащая URL иконки, отображаемой вместе с действием.

Соответствующие ответы формируются с использованием event.action в событии notificationclick.

badge Необязательный Экспериментально

Строка, содержащая URL изображения, используемого для представления уведомления, когда нет достаточно места для отображения самого уведомления; например, в строке уведомлений Android. На устройствах Android значок должен быть адаптирован к устройствам с разрешением до 4x, около 96x96px, и изображение будет автоматически замаскировано.

body Необязательный

Строка, представляющая текстовое тело уведомления, отображаемое под заголовком. По умолчанию пустая строка.

data Необязательный Экспериментально

Произвольные данные, которые вы хотите связать с уведомлением. Это может быть любой тип данных, поддерживаемый структурированным клонированием. По умолчанию null.

dir Необязательный

Направление отображения уведомления. По умолчанию auto, что просто использует поведение настройки языка браузера, но вы можете переопределить это, задав значения ltr и rtl (хотя большинство браузеров, похоже, игнорируют эти настройки).

icon Необязательный

Строка, содержащая URL иконки, которая будет отображена в уведомлении.

image Необязательный Экспериментально

Строка, содержащая URL изображения, которое будет отображено в уведомлении.

lang Необязательный

Язык уведомления, указанный с помощью строки, представляющей тег языка в соответствии с RFC 5646: Теги для идентификации языков (также известные как BCP 47). См. страницу Sitepoint ISO 2-буквенные коды языка для простого справочника. По умолчанию пустая строка.

renotify Необязательный Экспериментально

Булево значение, определяющее, нужно ли уведомлять пользователя после того, как новое уведомление заменит старое. По умолчанию false, что означает, что уведомления не будут. Если true, тогда tag также должно быть задано.

requireInteraction Необязательный Экспериментально

Указывает, что уведомление должно оставаться активным до тех пор, пока пользователь не нажмёт или не закроет его, а не закрываться автоматически. Значение по умолчанию false.

silent Необязательный

Булево значение, указывающее, что уведомление без звука (нет звуков или вибраций), независимо от настроек устройства. По умолчанию null, что означает, что будут учитываться настройки устройства. Если true, то vibrate не должно присутствовать.

tag Необязательный

Строка, представляющая идентификационный тег для уведомления. По умолчанию пустая строка.

timestamp Необязательный

Маркер времени, заданный в миллисекундах по Unix-времени, представляющий время, связанное с уведомлением. Это может быть в прошлом, когда уведомление используется для сообщения, которое не могло быть немедленно доставлено, потому что устройство было отключено, или в будущем для встречи, которая вот-вот начнется.

vibrate Необязательный Экспериментально

Шаблон вибрации для излучения вибрации устройства с уведомлением. Если указано, silent не должно быть true.

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

Объект Promise, который разрешается до undefined.

Исключения

TypeError

Выбрасывается, если:

  • Состояние текущего service worker не activating или activated.
  • Пользователь явно запретил запрос разрешения браузера на использование API.
  • Опция silent равна true и опция vibrate задана.
  • Опция renotify равна true , но опция tag пустая.
DataCloneError DOMException

Выбрасывается, если сериализация опции data по какой-либо причине не удалась.

Примеры

navigator.serviceWorker.register("sw.js");

function showNotification() {
  Notification.requestPermission().then((result) => {
    if (result === "granted") {
      navigator.serviceWorker.ready.then((registration) => {
        registration.showNotification("Vibration Sample", {
          body: "Buzz! Buzz!",
          icon: "../images/touch/chrome-touch-icon-192x192.png",
          vibrate: [200, 100, 200, 100, 200, 100, 200],
          tag: "vibration-sample",
        });
      });
    }
  });
}

Для вызова указанной выше функции в подходящее время можно прослушать событие notificationclick.

Вы также можете получить данные об уведомлениях Notification, которые были отправлены текущим service worker, используя ServiceWorkerRegistration.getNotifications().

Спецификации

Спецификация
API уведомлений
# dom-serviceworkerregistration-shownotification

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
showNotification 42 17 44 29
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
42 44 29
16.4Уведомления поддерживаются в веб-приложениях, сохранённых на главном экране.
4.0 Нет
options_actions_parameter 48 18 Нет 35 Нет 48 Нет 35 Нет 5.0 Нет
options_badge_parameter 53 ≤79 Нет 39
17Иконки-метки поддерживаются для веб-приложений, сохранённых в Dock в Safari 17 на бета-версии macOS Sonoma
53 Нет 41 16.4 6.0 Нет
options_data_parameter 44 ≤79 Нет 31 Нет 44 Нет 32 Нет 4.0 Нет
options_image_parameter 56 ≤79 Нет 43 Нет 56 Нет 43 Нет 6.0 Нет
options_renotify_parameter 50 ≤79 Нет 37 Нет 50 Нет 37 Нет 5.0 Нет
options_requireInteraction_parameter 47 ≤79 Нет 34 Нет 47 Нет 34 Нет 5.0 Нет
options_vibrate_parameter 45 ≤79 Нет 32 Нет
НетВ Android Oreo и выше, независимо от версии Chrome, этот параметр не имеет эффекта. См. баг 40630890.
Нет
НетВ Android Oreo и выше, независимо от версии Chrome, этот параметр не имеет эффекта. См. баг 40630890.
Нет
НетВ Android Oreo и выше, независимо от версии Chrome, этот параметр не имеет эффекта. См. баг 40630890.
Нет

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification

Spec-Zone.ru

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