服务器端代码:
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',
}));
});(所有内容都是从自述、教程和演示中复制的)
当我在服务器端发送通知时,它会像预期的那样显示在我的屏幕上,并且没有错误。但是,console.log('Push message', event);使用data: null输出事件对象。如何从服务器获取test: 'value'键值对?这是最新的节点-gcm和Chrome52。
发布于 2016-07-25 04:43:25
web推送通知的有效负载与Android的工作方式不同。它需要加密并以不同的方式发送。
您可以使用Node.js的web-push library。它支持老版本Chrome的GCM,Firefox和新版本Chrome的Web推送。
https://stackoverflow.com/questions/38555355
复制相似问题