2

Я NWW в GAE и толкать работник API/услуг, я пытаюсь, чтобы подписаться на pushManager но, pushManager getSubscription обработчик метод возвращает ссылку на нулевуюНе может подписаться на PushManager

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

+0

Возможный дубликат [getSubscription возвращает нулевую подписку] (http://stackoverflow.com/questions/35332678/getsubscription-returns-a-null-subscription) – Marco

ответ

1

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

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

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

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

Чтение из раздела: "Составьте проект на Google Developer Console" и далее.

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

Обратите внимание на две соответствующие клавиши, необходимые, чтобы сделать толчок работы: «gcm_user_visible_only»: правда, «gcm_sender_id»: " ... "< - Создайте свой собственный и замените ... с ним.

Смежные вопросы