Javascript 激活软件后获取订阅
我不确定我在哪里犯了错误 我想注册一名服务人员,当它“激活”时 向我的服务器发出XHR请求以存储订阅数据Javascript 激活软件后获取订阅,javascript,service-worker,Javascript,Service Worker,我不确定我在哪里犯了错误 我想注册一名服务人员,当它“激活”时 向我的服务器发出XHR请求以存储订阅数据 self.addEventListener('activate', function(event) { console.log('Activated', event); event.waitUntil( self.registration.pushManager.getSubscription().then(function (subscription) {
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获得订阅。我站不住的是什么
编辑:
这是我注册为经理的方式
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接口的PushManager.getSubscription()方法检索现有的推送订阅
如果要这样做,您首先必须使用订阅
PushManager
。对,我忘了补充一点,我确实订阅了PushManager
,我发现的问题是,当我这样做时,即使承诺将getSubscription()
发送到服务器,它也无法工作,用户必须重新加载。基本上,我试图订阅用户推送消息并立即发送订阅数据。@sathia请添加订阅问题的代码。