我目前在某些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/

10-12 19:55