Notifications API
Notifications API позволяют web-страницам контролировать отображение системных уведомлений для конечного пользователя — они находятся вне контекста окна браузера верхнего уровня, поэтому могут отображаться даже если пользователь сменил вкладку или перешёл к другому приложению. API были разработаны таким образом, чтобы поддерживать совместимость с существующими системами уведомлений на различных платформах.
Концепция и использование
На поддерживаемых платформах, отображение системных уведомлений обычно включает две вещи. Во-первых, пользователь должен разрешить текущему источнику отображать уведомления, что, как правило, происходит, при первичной загрузке приложения или сайта, используя метод Notification.requestPermission()
(en-US). Далее будет вызван диалог со следующим текстом:
Здесь пользователь может выбрать разрешить уведомления от источника, заблокировать их или решить позже. Как только выбор будет сделан, для текущей сессии будут установлены настройки.
Примечание: Для Firefox 44, разрешения для Notifications и Push объединяются. Если было установлено разрешение для уведомлений, push так же будут разрешены .
Затем создаётся новое уведомление с помощью конструктора Notification()
(en-US). В функцию должен быть передан аргумент заголовка и, по желанию, объект настроек, чтобы определить опции, такие как направление и тело текста, иконка, звук уведомления и т.д.
Примечание: Эта возможность доступна в Web Workers
В дополнение, спецификация Notifications API определить несколько дополнений для ServiceWorker API (en-US), чтобы позволить им отправлять уведомления.
Примечание: Чтобы найти больше об использовании уведомлений в вашем приложении, читайте Использование Notifications API (en-US).
Интерфейс уведомлений
Notification
-
Определяет объект уведомления.
Дополнение для Service worker
ServiceWorkerRegistration
-
Включает
ServiceWorkerRegistration.showNotification()
иServiceWorkerRegistration.getNotifications()
(en-US) методы для контролирования отображения уведомлений. ServiceWorkerGlobalScope
(en-US)-
Включает обработчик
ServiceWorkerGlobalScope.onnotificationclick
для вызова встроенных функций, когда был выполнен клик на уведомлении. NotificationEvent
(en-US)-
Особый тип объекта событий, основанный на
ExtendableEvent
(en-US), который представляет уведомление, которое было вызвано.
Спецификации
Specification |
---|
Notifications API Living Standard |
Поддержка браузерами
BCD tables only load in the browser
Firefox OS разрешения
Когда используете уведомления в приложении на Firefox OS, убедитесь, что desktop-notification
установленно в вашем фаине манифеста. Уведомления могут быть использованы для любомого уровня разрешения, равного или выше:
json
"permissions": {
"desktop-notification": {}
}