2017-10-17 77 views
1

我正在關注這個非常明確的tutorialPushManager的.subscribe()方法問題

不同之處在於,當我到達訂閱與pushManager用戶舞臺當我打電話pushManager.subscribe()我沒有得到來自其地位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); 
     }); 
    } 

應該附加配置在其他地方做?任何建議表示讚賞。

回答

0

剛剛碰到這個thread

的建議是,刪除地處GCM Store目錄:

/Users/[user-name]/Library/Application Support/Google/Chrome/Default/GCM Store

我第一次不得不退出瀏覽器,文件夾刪除,然後重新啓動才能正常工作。

看起來像一個可追溯到2016年6月(Chrome 51)的錯誤,即使現在是2017年10月(Chrome 61),它似乎仍然是一個問題。

希望這可以幫助別人。