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), который представляет уведомление, которое было вызвано.

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

Поддержка браузерами

BCD tables only load in the browser

Firefox OS разрешения

Когда используете уведомления в приложении на Firefox OS, убедитесь, что desktop-notification установленно в вашем фаине манифеста. Уведомления могут быть использованы для любомого уровня разрешения, равного или выше:

json

"permissions": {
  "desktop-notification": {}
}

See also