浏览器:Google Cloud Messaging / node-gcm - 数据始终为null

时间:2016-07-24 18:27:39

标签: javascript google-cloud-messaging web-push node-gcm

Serverside代码:

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

客户代码(在工作的服务人员中):

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

(所有内容都是从自述文件,教程和演示中复制而来)

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

1 个答案:

答案 0 :(得分:0)

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

您可以将web-push library用于Node.js.它支持较旧的Chrome版本的GCM,适用于Firefox的Web Push和较新的Chrome版本。