This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Push API
Примечание: Эта возможность доступна вWeb Workers.
Push API предоставляет веб-приложениям возможность принимать сообщения с сервера независимо от того, запущено веб-приложение прямо сейчас или нет. Что в свою очередь позволяет разработчикам оперативно уведомлять пользователей, которые разрешили присылать себе уведомления о новом контенте.
In this article
Об использовании 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 |