2017-10-17 2 views
1

Je suis ce très clair tutorial.Problème avec .subscribe() méthode de pushManager

Tous les travaux, sauf que lorsque je reçois à l'étape inscrivez-vous un utilisateur avec PushManager quand je l'appelle pushManager.subscribe() Je ne reçois pas de réponse de la promesse dont le statut est pending.

Peut-être que je manque un problème flagrant avec ma configuration, qui est la suivante:

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); 
     }); 
    } 

Si une configuration supplémentaire se fait ailleurs? Tout conseil est apprécié.

Répondre

0

J'ai juste rencontré ce thread.

Le conseil est de supprimer le répertoire GCM Store situé dans:

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

j'ai dû quitter Chrome, supprimez le dossier et puis re-lancement pour le faire fonctionner.

Apparemment, il s'agit d'un bogue dont la traçabilité remonte à juin 2016 (Chrome 51) et même si nous sommes en octobre 2017 (Chrome 61), cela semble toujours être un problème.

Espérons que cela puisse aider quelqu'un.