Spec-Zone.ru › Web APIs

API уведомлений

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

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

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

Концепции и использование

На поддерживаемых платформах отображение системного уведомления обычно включает два этапа. Во-первых, пользователю необходимо предоставить текущему источнику разрешение на отображение системных уведомлений, что обычно выполняется при инициализации приложения или сайта, используя метод Notification.requestPermission(). Этот метод следует вызывать только при обработке пользовательского жеста, например, при обработке щелчка мышью. Например:

btn.addEventListener("click", () => {
  let promise = Notification.requestPermission();
  // wait for permission
});

Это запустит диалоговое окно запроса, примерно такого вида:

A dialog box asking the user to allow notifications from that origin. There are options to never allow or allow notifications.

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

Далее, создается новое уведомление с помощью конструктора 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-origin iframe.", "From Firefox 72 onwards, can only be called in response to a user gesture such as a click event."]
23 15
7–15Only supported the deprecated callback syntax.
42
22["From Firefox Android 79 onwards, cannot be called from a cross-origin iframe.", "From Firefox Android 79 onwards, can only be called in response to a user gesture such as a click event."]
29
16.4The parent Notification 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.
117
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 загружаются только в браузере

См. также

  • Использование API уведомлений

© 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

Spec-Zone.ru

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