API уведомлений
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS), в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
API уведомлений позволяет веб-страницам управлять отображением системных уведомлений для конечного пользователя. Эти уведомления выводятся вне области просмотра основного контекста браузера, поэтому они могут отображаться даже когда пользователь переключился на другую вкладку или перешел в другое приложение. API разработан для совместимости с существующими системами уведомлений на разных платформах.
Концепции и использование
На поддерживаемых платформах отображение системного уведомления обычно включает два этапа. Во-первых, пользователю необходимо предоставить текущему источнику разрешение на отображение системных уведомлений, что обычно выполняется при инициализации приложения или сайта, используя метод Notification.requestPermission(). Этот метод следует вызывать только при обработке пользовательского жеста, например, при обработке щелчка мышью. Например:
btn.addEventListener("click", () => {
let promise = Notification.requestPermission();
// wait for permission
});
Это запустит диалоговое окно запроса, примерно такого вида:
Здесь пользователь может выбрать, разрешить ли уведомления от этого источника или заблокировать их. После принятия решения, настройки обычно сохраняются для текущего сеанса.
Далее, создается новое уведомление с помощью конструктора Notification(). Требуется указать заголовок, а также, необязательно, объект настроек для указания параметров, таких как направление текста, текст тела, отображаемый значок, звуковой сигнал уведомления и другие.
Кроме того, спецификация API уведомлений определяет ряд дополнений к API ServiceWorker, чтобы позволить службам рабочих процессов отправлять уведомления.
Примечание: Чтобы узнать больше о использовании уведомлений в вашем приложении, прочитайте Использование API уведомлений.
Интерфейсы
Notification-
Определяет объект уведомления.
NotificationEvent-
Представляет событие уведомления, отправленное на
ServiceWorkerGlobalScopeобъектаServiceWorker.
Расширения других интерфейсов
-
notificationclickсобытие -
Возникает при щелчке пользователя по отображаемому уведомлению.
-
notificationcloseсобытие -
Возникает при закрытии пользователем отображаемого уведомления.
ServiceWorkerRegistration.getNotifications()-
Возвращает список уведомлений в порядке их создания текущим источником через текущую регистрацию службы рабочего процесса.
ServiceWorkerRegistration.showNotification()-
Отображает уведомление с указанным заголовком.
Спецификации
| Спецификация |
|---|
| API уведомлений |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Notifications_API |
40 | 17 | 44 | 27 | 16Уведомления поддерживаются в macOS Ventura и более поздних версиях. |
40 | 44 | 27 | 16.4Уведомления поддерживаются в веб-приложениях, сохраненных на главном экране. |
4.0 | Нет |
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
Notifications_API |
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Поддержка значков для веб-приложений, сохраненных в Доке, в Safari 17 на macOS Sonoma beta |
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. |
Нет |
| Настольный | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
Notification |
20 | 14 | 224 | 23 | 7 | 42["Уведомление может быть отправлено только из сервисного воркера. Чтобы показать уведомление, см.ServiceWorkerRegistration.showNotification().", "Этот конструктор всегда вызывает исключение TypeError."] |
224 | 29["Уведомление может быть отправлено только из сервисного воркера. Чтобы показать уведомление, см.ServiceWorkerRegistration.showNotification().", "Этот конструктор всегда вызывает исключение TypeError."] |
16.4["Этот конструктор вызывает исключениеReferenceError, если страница не является веб-приложением, сохраненным на главном экране. В манифесте приложения должно быть значение display отличное от значения по умолчанию.", "Уведомление может быть отправлено только из сервисного воркера. Чтобы показать уведомление, см. ServiceWorkerRegistration.showNotification()."] |
4.0["Уведомление может быть отправлено только из сервисного воркера. Чтобы показать уведомление, см.ServiceWorkerRegistration.showNotification().", "Этот конструктор всегда вызывает исключение TypeError."] |
Нет |
Notifications_API |
20["Начиная с Chrome 49, уведомления не работают в режиме инкогнито.", "До Chrome 42 добавления сервисных воркеров не поддерживались."] |
14 | 224 | 23["Начиная с Opera 36, уведомления не работают в режиме инкогнито.", "До Opera 29 добавления сервисных воркеров не поддерживались."] |
7 | 42Уведомление может быть отправлено только из сервисного воркера. Чтобы показать уведомление, см.ServiceWorkerRegistration.showNotification(). |
224 | 29["Уведомления в Opera для Android доступны только через сервисные воркеры. Чтобы показать уведомления на Android, см.ServiceWorkerRegistration.showNotification().", "Начиная с Opera для Android 36, уведомления не работают в режиме инкогнито."] |
16.4["ИнтерфейсNotification не определен, если страница не является веб-приложением, сохраненным на главном экране. В манифесте приложения должно быть значение display отличное от значения по умолчанию.", "Уведомление может быть отправлено только из сервисного воркера. Чтобы показать уведомление, см. ServiceWorkerRegistration.showNotification()."] |
4.0["Уведомления в Samsung Internet доступны только через сервисные воркеры. Чтобы показать уведомления на Android, см.ServiceWorkerRegistration.showNotification().", "Начиная с Samsung Internet 5.0, уведомления не работают в режиме инкогнито."] |
Нет |
actions |
53 | 18 | Нет | 39 | Нет | 53 | Нет | 41 | Нет | 6.0 | Нет |
badge |
53 | 18 | Нет | 39 | 17Поддержка значков доступна для веб-приложений, сохраненных на Доке в Safari 17 на бета-версии macOS Sonoma |
53 | Нет | 41 | 17Поддержка значков доступна для веб-приложений, сохраненных на Доке в Safari на iOS 17 на бета-версии macOS Sonoma |
6.0 | Нет |
body |
33 | 14 | 26 | 23 | 11 | 42 | 26 | 29 | 16.4 | 4.0 | Нет |
click_event |
20 | 14 | 22 | 23 | 7 | 42 | 22 | 29 | 16.4 | 4.0 | Нет |
close |
20 | 14 | 22 | 23 | 7 | 42 | 22 | 29 | 16.4 | 4.0 | Нет |
close_event |
20 | 14 | 22 | 23 | 7 | 42 | 22 | 29 | 16.4 | 4.0 | Нет |
data |
44 | 16 | 34 | 31 | 16 | 44 | 34 | 32 | 16.4 | 4.0 | Нет |
dir |
20 | 14 | 26 | 23 | 7 | 42 | 26 | 29 | 16.4 | 4.0 | Нет |
error_event |
20 | 14 | 22 | 23 | 7 | 42 | 22 | 29 | 16.4 | 4.0 | Нет |
icon |
33 | 14 | 26 | 23 | НетСвойство может быть установлено, но не оказывает никакого эффекта. |
42 | 26 | 29 | НетСвойство может быть установлено, но не оказывает никакого эффекта. |
4.0 | Нет |
image |
56 | 18 | Нет | 43 | Нет | 56 | Нет | 43 | Нет | 6.0 | Нет |
lang |
33 | 14 | 26 | 23 | 11 | 42 | 26 | 29 | Нет | 4.0 | Нет |
maxActions_static |
48 | 18 | Нет | 35 | Нет | 48 | Нет | 35 | Нет | 5.0 | Нет |
permission_static |
32 | 14 | 22 | 23 | 7 | 42 | 22 | 29 | 16.4Родительский интерфейсNotification не определен, если страница не является веб-приложением, сохраненным на главном экране. В манифесте приложения должно быть значение display отличное от значения по умолчанию. |
4.0 | Нет |
renotify |
50 | 79 | Нет | 37 | Нет | 50 | Нет | 37 | Нет | 5.0 | Нет |
requestPermission_static |
20 | 14 | 22["From Firefox 70 onwards, cannot be called from a cross-originiframe.", "From Firefox 72 onwards, can only be called in response to a user gesture such as a click event."] |
23 | 157–15Only supported the deprecated callback syntax. |
42 | 22["From Firefox Android 79 onwards, cannot be called from a cross-originiframe.", "From Firefox Android 79 onwards, can only be called in response to a user gesture such as a click event."] |
29 | 16.4The parentNotification interface is undefined unless the page is a web app saved to the home screen. The app's manifest must have a non-default display value. |
4.0 | Нет |
|---|---|---|---|---|---|---|---|---|---|---|---|
requireInteraction |
47 | 17 |
117Supported only on Windows. Behind a flag on other operating systems. |
34 | Нет | 47 | 117Only supported on Windows. Behind a flag on other operating systems. |
34 | Нет | 5.0 | Нет |
secure_context_required |
62 | 79 | 67 | 49 | Нет | 62 | 67 | 46 | Нет | 8.0 | Нет |
show_event |
20 | 14 | 22 | 23 | 7 | 42 | 22 | 29 | Нет | 4.0 | Нет |
silent |
43 | 17 | 132 | 30 | 16.6 | 43 | 132 | 30 | Нет | 4.0 | Нет |
tag |
20 | 14 | 26 | 23 | НетСвойство может быть установлено, но не оказывает никакого влияния. |
42 | 26 | 29 | Нет | 4.0 | Нет |
timestamp |
50 | 17 | Нет | 37 | Нет | 50 | Нет | 37 | Нет | 5.0 | Нет |
title |
33 | 14 | 26 | 23 | 11 | 42 | 26 | 29 | Нет | 4.0 | Нет |
vibrate |
53 | 79 | Нет | 40 | Нет | 53 | Нет | 41 | Нет | 6.0 | Нет |
worker_support |
42 | 15 | 41 | 29 | Нет | 42 | 41 | 29 | Нет | 4.0 | Нет |
api.Уведомление
Таблицы BCD загружаются только в браузере
api.РегистрацияServiceWorker.отобразитьУведомление
Таблицы BCD загружаются только в браузере
api.РегистрацияServiceWorker.получитьУведомления
Таблицы BCD загружаются только в браузере
См. также
© 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/Notifications_API