This page was translated from English by the community.Learn more and join the MDN Web Docs community.
PushManager
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since март 2023 г..
* Some parts of this feature may have varying levels of support.
Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.
Примечание: Эта возможность доступна вWeb Workers.
ИнтерфейсPushManager изPush API предоставляет возможность получать уведомления от сторонних серверов, а также запрашивать URL для push уведомлений.
Этот интерфейс доступен через свойствоServiceWorkerRegistration.pushManager.
Примечание:Этот интерфейс заменил функциональность, предлагаемую устаревшимPushRegistrationManager.
In this article
Свойства
PushManager.supportedContentEncodingsВозвращает массив со списком возможных алгоритмов кодирования, которые могут быть использованы для шифрования полезной нагрузки пуш-уведомления.
Методы
PushManager.subscribe()Подписка на пуш сервис. Возвращает промис, который разрешается в
PushSubscriptionобъект, содержащий детали новой push подписки.PushManager.getSubscription()Извлекает существующую push подписку. Возвращает промис, который разрешается в
PushSubscriptionобъект, содержащий детали существующей подписки.PushManager.permissionState()Возвращает
Promise, который разрешается в состояние доступа текущегоPushManager, которое может быть одним из'granted','denied', или'default'.
Устаревшие методы
PushManager.hasPermission()Returns a
Promisethat resolves to thePushPermissionStatusof the requesting webapp, which will be one ofgranted,denied, ordefault. Replaced byPushManager.permissionState().PushManager.register()Subscribes to a push subscription. Replaced by
PushManager.subscribe().PushManager.registrations()Retrieves existing push subscriptions. Replaced by
PushManager.getSubscription().PushManager.unregister()Unregisters and deletes a specified subscription endpoint. In the updated API, a subscription is can be unregistered via the
PushSubscription.unsubscribe()method.
Пример
this.onpush = function (event) { console.log(event.data); // From here we can write the data to IndexedDB, send it to any open // windows, display a notification, etc.};navigator.serviceWorker .register("serviceworker.js") .then(function (serviceWorkerRegistration) { serviceWorkerRegistration.pushManager.subscribe().then( function (pushSubscription) { console.log(pushSubscription.subscriptionId); console.log(pushSubscription.endpoint); // The push subscription details needed by the application // server are now available, and can be sent to it using, // for example, an XMLHttpRequest. }, function (error) { // During development it often helps to log errors to the // console. In a production environment it might make sense to // also report information about errors back to the // application server. console.log(error); }, ); });Спецификации
| Specification |
|---|
| Push API> # pushmanager-interface> |
Совместимость с браузерами
Смотрите также
- Использование Push API
- Push сообщения в Open Web, Matt Gaunt