1
我不確定我犯了什麼錯誤。getSubscription激活sw後
我想註冊一個服務人員,當它被「激活」 向我的服務器發出XHR請求以存儲訂閱數據。
self.addEventListener('activate', function(event) {
console.log('Activated', event);
event.waitUntil(
self.registration.pushManager.getSubscription().then(function (subscription) {
console.log(subscription);//this is always null
})
)
})
到目前爲止,我無法獲得軟件內的訂閱,我可以從網站上的任何其他JavaScript。我不是在說什麼?
編輯:
我這是怎麼註冊pushmanager
function reg(){
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register(SW).then(function(reg) {
reg.pushManager.subscribe({
userVisibleOnly: true
}).then(function(subscription) {
send_subscription(subscription);
});
}).catch(function(error) {
console.log(':^(', error);
});
}
}
function send_subscription(subscription){ [...] }
對,我忘了補充一點,我確實訂閱了一個PushManager,我發現的問題是,即使有承諾向服務器發送getSubscription(),它也不會' t工作並且用戶必須重新加載。基本上我試圖訂閱用戶推送消息並立即發送訂閱數據。 – sathia
@sathia請添加正在訂閱您的問題的代碼。 – sdgluck
我已經添加了reg()代碼。 – sathia