Не удалось подписаться на PushManager

Я nww для GAE и push API/сервисных рабочих, я пытаюсь подписаться на pushManager, но обработчик метода pushManager getSubscription возвращает нулевую ссылку

navigator.serviceWorker.ready.then(function(serviceWorkerRegistration)
 {      console.log('in side ready ' );
     // Do we already have a push message subscription?  
     serviceWorkerRegistration.pushManager.getSubscription()  
       .then(function(subscription) {  

         // Enable any UI which subscribes / unsubscribes from  
         // push messages.  
         var pushButton = document.querySelector('.js-push-button');  
         pushButton.disabled = false;

         if (!subscription) {  
           // We aren't subscribed to push, so set UI  
           // to allow the user to enable push        console.log('subscription error ' ); 
           return;  
         }  console.log('subscriptioned ' );
         // Keep your server in sync with the latest subscriptionId
         sendSubscriptionToServer(subscription);

         // Set your UI to show they have subscribed for  
         // push messages  
         pushButton.textContent = 'Disable Push Messages';  
         isPushEnabled = true;  
       })  
       .catch(function(err) {  
         console.warn('Error during getSubscription()', err);  
       });     });

В способном коде getSubscription() затем возвращает значение подписки как нулевое, так что управление переходит к тому, существуют ли блок и функция.

если я пытаюсь позвонить

serviceWorkerRegistration.pushManager.subscribe() 

то я получаю следующую ошибку

registration failed - no sender id provided

URL-адрес рабочего процесса находится ниже https://dtatable-date-filter.googleplex.com/home< /а>


person Srinivas    schedule 12.02.2016    source источник
comment
Возможный дубликат getSubscription возвращает нулевую подписку   -  person Marco Castelluccio    schedule 12.02.2016


Ответы (1)


Предполагая, что это в chrome, вам нужно включить идентификатор отправителя в файл манифеста.

Вы получаете такой идентификатор отправителя, создавая проект в консоли разработчика Google.

Вы можете получить подробный набор шагов в:

https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web?hl=en

Читайте из раздела: "Создание проекта в консоли разработчика Google" и далее.

Вы можете увидеть пример файла манифеста с собственным идентификатором отправителя здесь: https://johnme-gcm.appspot.com/manifest.json

Обратите внимание на два соответствующих ключа, необходимых для работы push: "gcm_user_visible_only": true, "gcm_sender_id": "..." ‹- Создайте свой собственный и замените ... им.

person Miguel Garcia    schedule 13.02.2016