Notifications API
=================

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

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

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

![](/ru/docs/Web/API/Notifications_API/notification-bubble.png)

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

**Примечание:** Для 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 |

Совместимость с браузерами
--------------------------

### api.Notification

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.ServiceWorkerRegistration.showNotification

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.ServiceWorkerRegistration.getNotifications

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

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


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

See also
--------

* Использование Notifications API (en-US)