Notifications API

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

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

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

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

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

Заметка: Для Firefox 44, разрешения для Notifications и Push объединяются. Если было установлено разрешение для уведомлений, push так же будут разрешены .

Затем создается новое уведомление с помощью конструктора  Notification(). В функцию должен быть передан аргумент заголовка и, по желанию, объект настроек, чтобы определить опции, такие как направление и тело текста, иконка, звук уведомления и т.д.

Примечание: Эта возможность доступна в Web Workers.

В дополнение, спецификация Notifications API определет несколько дополнений для ServiceWorker API, чтобы позволить им отправлять уведомления.

Заметка: Чтобы найти больше об использовани уведомлений в вашем приложении, читайте Использование Notifications API.

Интерфейс уведомлений

Notification
Определяет объект уведомления.

Дополнение для Service worker

ServiceWorkerRegistration
Включает ServiceWorkerRegistration.showNotification() и ServiceWorkerRegistration.getNotifications() методы для контролирования отображения уведомлений.
ServiceWorkerGlobalScope
Включает обработчик ServiceWorkerGlobalScope.onnotificationclick для вызова встроенных функций, когда был выполнен клик на уведомлении.
NotificationEvent
Особый тип объекта событий, осованный на ExtendableEvent, который представляет уведомление, которое было вызвано.

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

Спецификация Статус Комментарий
Notifications API Живой стандарт Living standard

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

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 5webkit[1]
22
4.0 (2.0)moz[2]
22.0 (22.0)
Нет 25 6[3]
Available in workers ? 41.0 (41.0) ? ? ?
Service worker additions

42.0

42.0 (42.0)[4] ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ?

(Да)

4.0 (2.0)moz[2]
22.0 (22.0)
1.0.1moz[2]
1.2
Нет ? Нет

(Да)

Available in workers ? ? 41.0 (41.0) (Да) ? ? ? ?
Service worker additions Нет Нет 42.0 (42.0)[4] (Да) ? ? ? 42.0

[1] Before Chrome 22, the support for notification followed an old prefixed version of the specification and used the navigator.webkitNotifications object to instantiate a new notification. Before Chrome 32, Notification.permission was not supported.

[2] Prior to Firefox 22 (Firefox OS <1.2), the instantiation of a new notification was done with the navigator.mozNotification object through its createNotification() method. In addition, the Notification was displayed when calling the show() method and supported only the click and close events (Nick Desaulniers wrote a Notification shim to cover both newer and older implementations.)

[3] Safari started to support notification with Safari 6, but only on Mac OSX 10.8+ (Mountain Lion).

[4] Firefox 42 has shipped with web notifications from Service Workers disabled.

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

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

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

See also

Метки документа и участники

 Внесли вклад в эту страницу: curdwithraisins
 Обновлялась последний раз: curdwithraisins,