Регистрация 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пустая.
- Состояние текущего service worker не
-
DataCloneErrorDOMException -
Выбрасывается, если сериализация опции
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().
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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