self.addEventListener('push', function(event) {
var jsonObj = event.data.json();
}
我已经编写了chrome web推送通知,但event.data
始终为空。
目前我正在使用GCMPushMessage库,我想我需要php curl来发送通知。任何人都可以帮我发送带有效负载的网络推送通知吗?
答案 0 :(得分:0)
截至2015年,这related SO post表示,这是一种预期行为。
目前在Chrome中实施Push API的一个缺点是,您无法通过推送消息发送任何数据。不,没什么。这样做的原因是,在将来的实现中,有效载荷数据必须在服务器上发送到推送消息传递端点之前进行加密。这样,端点,无论是什么推送提供者,都将无法轻松查看推送消息的内容。这还可以防止其他漏洞,例如HTTPS证书验证不当以及服务器和推送提供程序之间的中间人攻击。但是,目前还不支持此加密,因此在同时,您需要执行提取以获取填充通知所需的信息。
根据文档的规定,您必须获取信息,然后在通知中填充它。
2016年3月发布的更新名为:Web Push Payload Encryption
在Chrome 50之前,推送消息不能包含任何有效负载数据。当你的服务工作者触发'push'事件时,你所知道的只是服务器试图告诉你一些事情,而不是它可能是什么。然后,您必须向服务器发出跟进请求,并获取要显示的通知的详细信息,这可能会在网络状况不佳时失败。
现在,在Chrome 50(以及桌面上当前版本的Firefox)中,您可以随推送一些任意数据,以便客户端可以避免发出额外请求。然而,强大的功能带来了巨大的责任,因此所有有效载荷数据都必须加密。
确保您已遵循在网络推送中为Chrome应用有效负载所需的实施方案。像一些客户端更改和服务器端更改。
希望这有帮助。