10

我目前面临一些 Chrome (Chromium) 版本的问题,其中PushManager.subscribe来自 ServiceWorker 的承诺保持在挂起状态

代码本身非常简单:

return serviceWorkerRegistration.pushManager.subscribe({
    userVisibleOnly: true
  });

我有一个有效且可访问的 JSON清单,提供GCM 发件人 ID。如本文所述,我还尝试了不同的实现,但结果仍然相同。

订阅部分适用于每个47+版本,问题出现在旧版本中。(我正在使用 Chromium 连续构建来测试不同的主要版本)。

另请注意,在 Ubuntu 上使用 Chromium 46(及更低版本)时,承诺会15 分钟后以Internal Server Error.

4

7 回答 7

1

问题在于 userVisibleOnly: true 作为参数。

这仅在 chrome 47 中引入。在此之前,您需要将其作为清单参数传递。 https://johnme-gcm.appspot.com/manifest.json是一个很好的例子。

于 2016-03-03T23:37:50.263 回答
1

我在使用公司代理时遇到了同样的问题。因为没有 Internet 连接,所以无法建立订阅,并且 Promise 永远不会解析。

于 2019-10-18T12:11:02.160 回答
1

看来 Chromium 团队正在研究它。如果我没记错的话,Chrome 55上会发布一个修复程序

于 2016-11-23T14:04:23.193 回答
0

我在 Chrome 67 中遇到了同样的问题,并且重新启动浏览器已修复它。

于 2018-07-07T12:18:54.777 回答
0

此问题可在 Windows 7 上的 chrome 55.0.2883.87 上重现。订阅承诺既不解决也不拒绝。但这仅发生在具有上述组合的一台机器上

于 2017-02-14T06:28:55.963 回答
0

更新并重新启动我的谷歌浏览器已为我解决

于 2019-02-28T13:18:07.797 回答
0

当您订阅 pushManager 时,会向浏览器推送服务发送订阅端点的请求。如果它不履行或拒绝它可能是因为存在与您的浏览器推送服务建立连接的问题。

于 2021-11-16T01:45:24.170 回答