2016-07-24 19 views
0

Serverside-Code ist:Browser: Google Cloud Messaging/node-GCM - Daten immer null

var message = new gcm.Message({ 
    collapseKey: "demo", 
    delayWhileIdle: true, 
    timeToLive: 3, 
    data: { 
     test: 'value' 
    } 
}); 

var sender = new gcm.Sender(config.gcmKey); 

var tokens = []; 

... (to add tokens) ... 

sender.send(message, tokens, 3, function (err, res) { ... } 

Clientside-Code (in einem Arbeitsserviceworker):

self.addEventListener('push', function(event) { 
    console.log('Push message', event); 
    var title = 'Push message'; 
    event.waitUntil(
     self.registration.showNotification(title, { 
      body: 'Test', 
      icon: 'img/icon.png', 
     })); 
}); 

(Alles aus readmes kopiert wird, Lernprogramme und Demos)

Wenn ich die Benachrichtigungsserverseite sende, wird es auf meinem Bildschirm wie erwartet und ohne Fehler angezeigt. Das console.log('Push message', event); gibt jedoch das Ereignisobjekt mit data: null aus. Wie kann ich das Schlüssel-Wert-Paar test: 'value' vom Server bekommen? Dies ist mit den neuesten Node-Gcm und Chrome 52.

Antwort

0

Die Nutzlast für Web-Push-Benachrichtigungen funktioniert nicht auf die gleiche Weise wie es für Android funktioniert. Es muss verschlüsselt und auf andere Weise gesendet werden.

Sie können die web-push library für Node.js verwenden. Es unterstützt GCM für ältere Chrome-Versionen, Web Push für Firefox und neuere Chrome-Versionen.