Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
Свойство pushManager
интерфейса ServiceWorkerRegistration
возвращает ссылку на интерфейс PushManager
, позволяющий управлять подписками на push-уведомления. Включает поддержку процедуры подписки, получения активной подписки, а также предоставляет доступ к стутусу разрешений на push-уведомления.
Синтакс
myPushManager = ServiceWorker.pushManager
Значение
Объект PushManager
.
Примеры
this.onpush = function(event) {
console.log(event.data);
// Отсюда можно записывать данные в IndexedDB, отправлять их в любое
// открытое окно, отображать уведомление и т. д.
}
navigator.serviceWorker.register('serviceworker.js').then(
function(serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.subscribe().then(
function(pushSubscription) {
console.log(pushSubscription.subscriptionId);
console.log(pushSubscription.endpoint);
// Детали push-подписки, требуемые сервером приложения,
// теперь доступны, и могут быть отправлены, к примеру,
// при помощи XMLHttpRequest.
}, function(error) {
// При разработке это часто помогает отлавливать ошибки в консоли.
// В продакшен-среде это также может быть полезно для отправки отчета
// об ошибках на сервер приложения.
console.log(error);
}
);
});
Спецификации
Specification | Status | Comment |
---|---|---|
Push API Определение 'PushManager' в этой спецификации. |
Рабочий черновик | Initial definition. |
Совместимость с браузерами
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.