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),它似乎仍然是一个问题。

希望这对某些人有所帮助。