2016-07-24 90 views
0

Serverside集团代码:浏览器:谷歌云通讯/节点-GCM - 数据始终是空

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) { ... } 

客户方代码(在工作serviceworker):

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

(一切都是从自述文件复制,教程和演示)

当我发送通知serverside时,它按预期方式显示在我的屏幕上,没有错误。但是,console.log('Push message', event);输出的事件对象为data: null。如何从服务器获取test: 'value'键值对?这是最新的node-gcm和Chrome 52。

回答

0

Web推送通知的有效负载与Android的工作方式不同。它需要加密并以不同的方式发送。

对于Node.js,您可以使用web-push library。它支持旧版Chrome版本的GCM,Firefox推出的Web Push和更新的Chrome版本。