PushManager: getSubscription() 方法
注意:此功能在 Web Workers 中可用。
PushManager 介面的 PushManager.getSubscription() 方法用於檢索現有的推送訂閱。
它返回一個 Promise,該 Promise 解析為一個 PushSubscription 物件,其中包含現有訂閱的詳細資訊。如果不存在現有訂閱,則解析為 null 值。
語法
js
getSubscription()
引數
無。
返回值
一個 Promise,它解析為一個 PushSubscription 物件或 null。
示例
此程式碼片段摘自一個 推送訊息和通知示例。(無即時演示可用。)
js
// 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}`);
});
});
規範
| 規範 |
|---|
| 推送 API # dom-pushmanager-getsubscription |
瀏覽器相容性
載入中…