2016-08-17 3 views
1

Привет, я пытаюсь внедрить веб-push-уведомление для веб-сайта i, следуя следующему example, за исключением части сервера, для которой я использую скрипт python для подключения к gcm/fcm и создания полезной нагрузки .i'm получает событие push, но event.data приходящий null.Уведомление о веб-Push Информация о полезной нагрузке получает нуль

from datetime import datetime 
from pyfcm import FCMNotification 
pushService = FCMNotification(api_key ='xxx'} 
registrationId="" 
messageTitle = "New update available" 
messageBody ="some message" 
dryRun = False 
extraData = {} 
extraData['title'] = "nknkn" 

sw.js

self.addEventListener('push',function(e){ 

console.log('Push Message Recevied',e.data); 
var title = 'Push message'; 
e.waitUntil(
    self.registration.showNotification(title, { 
     body: 'The Message form data', 
     icon: 'icon.jpg', 
     tag: 'my-tag' 
    })); 
}); 
+0

какой хром версия вы используете? –

ответ

1

И, Google Chrome и Mozilla Firefox в настоящее время поддерживают полезную нагрузку для кнопочных сообщений см PushMessageData на MDN. Но в соответствии со спецификацией Push API, любая полезная нагрузка должна быть зашифрована, в противном случае браузер будет отбрасывать его и вернуть нуль (см 11.1.6):

Если толкающее сообщение не может быть расшифрованы по какой-либо причине, или если он не зашифрован и содержит какую-либо полезную нагрузку, отбрасывает сообщение и завершает этот процесс. Push-сообщение может быть пустым, если оно не содержит содержимого, но в противном случае push-событие не должно запускаться для push-сообщения, которое не было успешно дешифровано с использованием пары ключей, связанной с push-подпиской.

Это хорошая статья от разработчиков Google, которая объясняет это более подробно: Web Push Payload Encryption. И оригинальная черновик Message Encryption for Web Push.

Я также могу предложить вам ознакомиться с набором уже реализованных библиотек для WebPush на разных языках: web-push-libs. Вы можете найти там lib, написанный на Python. И еще одна lib на Java, которая может отправлять push-сообщения с полезной нагрузкой в ​​Chrome и Firefox: https://github.com/MartijnDwars/web-push.

+0

Это также должно означать, что отправка массовых уведомлений невозможна .... или, по крайней мере, очень непрактично. При отправке X-http-запросов клиентам X вместо отправки на 1000 одновременно. – Spock

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