This page was translated from English by the community. Learn more and join the MDN Web Docs community.
Push API
Примечание: Эта возможность доступна в Web Workers.
Push API предоставляет веб-приложениям возможность принимать сообщения с сервера независимо от того, запущено веб-приложение прямо сейчас или нет. Что в свою очередь позволяет разработчикам оперативно уведомлять пользователей, которые разрешили присылать себе уведомления о новом контенте.
Об использовании Push API
Обратите внимание: При использовании PushManager-подписок жизненно важно защищать запросы от CSRF/XSRF-атак в вашем приложении. Подробнее читайте по ссылкам:
Для получения сообщений от сервера у приложения должен быть активированный сервис-воркер. После активации у сервис-воркера появится возможность подписаться на канал для получения сообщений, используя PushManager.subscribe().
В результате подписки будет получен объект PushSubscription со всей необходимой информацией, которая может потребоваться приложению для обращения за сообщениями на сервер: URL-адрес и ключ шифрования.
После подписки сервис-воркеру можно добавить обработчик ServiceWorkerGlobalScope.onpush для получения сообщений от сервера. В качестве реакции на сообщение можно, например, обращаться к серверу за данными и показывать пользователю уведомление с помощью метода ServiceWorkerRegistration.showNotification().
Для сервис-воркера каждая подписка уникальна, а её URL-адрес — уникальная специальная ссылка. Поскольку это всё, что нужно для обращения к серверу, данную ссылку нужно держать в секрете, иначе любое другое приложение сможет воспользоваться вашим сервером.
Для получения push-сообщений сервис-воркеру требуются ресурсы, что может влиять, например, на расход батареи. Во всех браузерах эти проблемы решаются по-разному, какого-то единого стандарта на этот счёт нет. Например, браузер Firefox ограничивает количество сообщений, которое можно отправить приложению, однако сообщения с показом уведомления в этот лимит не попадают. В Chrome таких ограничений нет.
Интерфейсы
PushEvent-
Описывает действие, направленное в глобальную область видимости
сервис-воркера. Включает информацию, переданную серверомподписчикам. PushManager-
Предоставляет возможность подписаться на сообщения от сторонних серверов и получить URL-адрес для отправки push-уведомлений.
PushMessageData-
Содержит данные, отправленные сервером, и методы для управления ими.
PushSubscription-
Предоставляет возможность получить URL-адрес подписки, а также содержит метод для отписки.
PushSubscriptionOptions-
Описывает параметры конкретной подписки.
Методы сервис-воркера для работы c Push API
Спецификация Push API расширяет возможности сервис-воркеров для работы с push-сообщениями: позволяет отслеживать и реагировать на такие сообщения, а также следить за изменениями в подписках.
ServiceWorkerRegistration.pushManagerТолько для чтения-
Позволяет обратиться к интерфейсу по управлению подписками
PushManager, в том числе для добавления подписки, получения информации о текущей подписке, а также позволяет узнать о возможности отправки сообщений. Работа с push-сообщениями начинается с этого свойства сервис-воркера. ServiceWorkerGlobalScope.onpush-
Обработчик событий, срабатывает всякий раз, когда происходит событие
push; то есть при получении push-сообщений от сервера. ServiceWorkerGlobalScope.onpushsubscriptionchange-
Обработчик событий, срабатывает всякий раз, когда происходит событие
pushsubscriptionchange; будет полезен в ситуациях, когда подписка была просрочена или вот-вот будет просрочена (при условии, что для подписки был указан срок действия).
Примеры
На сайте-инструкции по работе с сервис-воркерами от Mozilla вы найдёте множество примеров использования Push API.
Спецификации
| Спецификация |
|---|
| Push API |
Совместимость с браузерами
>api.PushEvent
Loading...
api.PushMessageData
Loading...