我目前在某些Chrome(Chromium)版本中遇到问题,其中ServiceWorker的PushManager.subscribe
promise 处于待处理状态。
代码本身非常简单:
return serviceWorkerRegistration.pushManager.subscribe({
userVisibleOnly: true
});
我有一个有效且可访问的JSON list ,提供了 GCM发件人ID 。我还尝试了不同的实现,如this post中所述,但结果仍然相同。
订阅部分与每个 47+ 版本均兼容,该问题在较早的发行版中出现。 (我正在使用Chromium连续构建来测试不同的主要版本)。
另请注意,在Ubuntu上使用Chromium 46(及更低版本)时,promise 在15分钟后使用
Internal Server Error
拒绝。 最佳答案
问题出在userVisibleOnly:true作为参数。
它仅在chrome 47中引入。在此之前,您需要将其作为 list 参数传递。
https://johnme-gcm.appspot.com/manifest.json是一个很好的例子。
关于javascript - PushManager订阅 promise 永远不会实现或拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35775485/