pushManager 的 .subscribe() 方法问题
Issue with .subscribe() method of pushManager
这个我很清楚tutorial。
除了当我进入阶段使用 pushManager 订阅用户时,我调用 pushManager.subscribe()
我没有从状态为 promise 的任何响应是 pending
.
也许我的设置遗漏了一些明显的问题,如下所示:
if ('serviceWorker' in navigator && 'PushManager' in window) {
console.log('Service Worker and Push is supported');
navigator.serviceWorker.register('service-worker.js')
.then(function(swReg) {
console.log('Service worker successfully registered.');
navigator.serviceWorker.ready.then(function() {
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: ... // My application server key.
};
let promise = swReg.pushManager.subscribe(subscribeOptions)
console.log(promise) // Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
promise
.then(function(pushSubscription) {
console.log('Received PushSubscription: ', pushSubscription); // Never gets called.
})
.catch(function(err) {
console.error('Unable to subscribe.', err); // Never gets called.
});
})
})
.catch(function(err) {
console.error('Unable to register service worker.', err);
});
}
是否应该在其他地方进行额外的配置?任何建议表示赞赏。
刚发现这个thread。
建议删除 GCM Store
目录位于:
C:\Users\[username]\AppData\Local\Google\Chrome\User Data\Default\GCM Store
我首先不得不退出 Chrome,删除文件夹,然后重新启动以使其正常工作。
似乎是一个可追溯到 2016 年 6 月 (Chrome 51) 的错误,即使现在是 2017 年 10 月 (Chrome 61),它似乎仍然是一个问题。
希望这对某些人有所帮助。
这个我很清楚tutorial。
除了当我进入阶段使用 pushManager 订阅用户时,我调用 pushManager.subscribe()
我没有从状态为 promise 的任何响应是 pending
.
也许我的设置遗漏了一些明显的问题,如下所示:
if ('serviceWorker' in navigator && 'PushManager' in window) {
console.log('Service Worker and Push is supported');
navigator.serviceWorker.register('service-worker.js')
.then(function(swReg) {
console.log('Service worker successfully registered.');
navigator.serviceWorker.ready.then(function() {
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: ... // My application server key.
};
let promise = swReg.pushManager.subscribe(subscribeOptions)
console.log(promise) // Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
promise
.then(function(pushSubscription) {
console.log('Received PushSubscription: ', pushSubscription); // Never gets called.
})
.catch(function(err) {
console.error('Unable to subscribe.', err); // Never gets called.
});
})
})
.catch(function(err) {
console.error('Unable to register service worker.', err);
});
}
是否应该在其他地方进行额外的配置?任何建议表示赞赏。
刚发现这个thread。
建议删除 GCM Store
目录位于:
C:\Users\[username]\AppData\Local\Google\Chrome\User Data\Default\GCM Store
我首先不得不退出 Chrome,删除文件夹,然后重新启动以使其正常工作。
似乎是一个可追溯到 2016 年 6 月 (Chrome 51) 的错误,即使现在是 2017 年 10 月 (Chrome 61),它似乎仍然是一个问题。
希望这对某些人有所帮助。