PushManager: метод getSubscription()
Базовая версия 2023
Новое
С марта 2023 года эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать на старых устройствах или браузерах.
Защищённый контекст: Эта функция доступна только в защищённых контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод PushManager.getSubscription() интерфейса PushManager получает существующую подписку на уведомления.
Он возвращает Promise, который разрешается в объект PushSubscription содержащий детали существующей подписки. Если подписки не существует, он разрешается в значение null.
Синтаксис
getSubscription()
Параметры
Нет.
Возвращаемое значение
Promise, который разрешается в объект PushSubscription или null.
Примеры
Этот фрагмент кода взят из примера уведомлений и сообщений push. (Живой пример недоступен.)
// We need the service worker registration to check for a subscription
navigator.serviceWorker.ready.then((serviceWorkerRegistration) => {
// Do we already have a push message subscription?
serviceWorkerRegistration.pushManager
.getSubscription()
.then((subscription) => {
// Enable any UI which subscribes / unsubscribes from
// push messages.
const pushButton = document.querySelector(".js-push-button");
pushButton.disabled = false;
if (!subscription) {
// We aren't subscribed to push, so set UI
// to allow the user to enable push
return;
}
// Keep your server in sync with the latest subscriptionId
sendSubscriptionToServer(subscription);
showCurlCommand(subscription);
// Set your UI to show they have subscribed for
// push messages
pushButton.textContent = "Disable Push Messages";
isPushEnabled = true;
})
.catch((err) => {
console.error(`Error during getSubscription(): ${err}`);
});
});
Спецификации
| Спецификация |
|---|
| Push API # dom-pushmanager-getsubscription |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getSubscription |
42 | 17 | 44 | 29 | 16Уведомления поддерживаются на macOS Ventura и новее. |
42 | 48 | 29 | 16.4Уведомления поддерживаются в веб-приложениях, сохранённых на главном экране. |
4.0 | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PushManager/getSubscription