我正在研究 Google Chrome 推送通知,并尝试将有效负载发送给 google Chrome 工作人员,但是我不知道如何接收此有效负载。
我有一个 API 可以在数据库中创建和保存通知,我需要通过以下方式发送值:https://android.googleapis.com/gcm/send
并在worker.js上接收
这是我的worker.js
self.addEventListener('push', function(event) {
var title = 'Yay a message.';
var body = 'We have received a push message.';
var icon = '/images/icon-192x192.png';
var tag = 'simple-push-demo-notification-tag';
event.waitUntil(
self.registration.showNotification(title, {
body: body,
icon: icon,
tag: tag
})
);
});
这就是我对 GCM 的称呼
curl --header "Authorization: key=AIzaSyDQjYDxeS9MM0LcJm3oR6B7MU7Ad2x2Vqc" --header "Content-Type: application/json" https://android.googleapis.com/gcm/send -d "{ \"data\":{\"foo\":\"bar\"}, \"registration_ids\":[\"APA91bGqJpCmyCnSHLjY6STaBQEumz3eFY9r-2CHTtbsUMzBttq0crU3nEXzzU9TxNpsYeFmjA27urSaszKtA0WWC3yez1hhneLjbwJqlRdc_Yj1EiqLHluVwHB6V4FNdXdKb_gc_-7rbkYkypI3MtHpEaJbWsj6M5Pgs4nKqQ2R-WNho82mnRU\"]}"
我试图得到event.data
但是,这是未定义的。
有人有什么想法或建议吗?
不幸的是,这似乎是一个预期行为 http://updates.html5rocks.com/2015/03/push-notificatons-on-the-open-web:
Chrome 中当前 Push API 实现的一个缺点是
您无法通过推送消息发送有效负载。不,没什么。这
这样做的原因是,在未来的实施中,有效负载将具有
在发送到推送消息之前在您的服务器上进行加密
端点。这样,无论推送提供商是什么,端点都会
无法轻松查看推送负载的内容。这也是
防止其他漏洞,例如 HTTPS 验证不佳
您的服务器和服务器之间的证书和中间人攻击
推送提供商。但是,尚不支持这种加密,因此在
同时您需要执行获取请求来获取信息
需要填充通知。
如上所述,解决方法是在收到推送后联系后端并获取第 3 方服务器上存储的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)