Javascript 从事件中提取JSON对象
当我试着运行代码时,我得到了“无法读取未定义的属性‘json’”错误。任何人都可以提出一种替代方法吗?在请求json()之前,您应该测试数据是否存在 像Javascript 从事件中提取JSON对象,javascript,json,service-worker,Javascript,Json,Service Worker,当我试着运行代码时,我得到了“无法读取未定义的属性‘json’”错误。任何人都可以提出一种替代方法吗?在请求json()之前,您应该测试数据是否存在 像 如果您今天在Chrome中尝试此功能,问题在于Chrome当前不支持推送事件的数据属性,也就是说,您无法以正常的GCM方式发送带有推送消息的有效负载 Chrome应在2016年初提供支持,但目前您必须向服务器发出获取请求,以获取显示通知所需的数据负载。什么是self?事件包含什么?从错误中可以清楚地看出,在事件中没有属性数据,谢谢,伙计,我得到
如果您今天在Chrome中尝试此功能,问题在于Chrome当前不支持推送事件的数据属性,也就是说,您无法以正常的GCM方式发送带有推送消息的有效负载
Chrome应在2016年初提供支持,但目前您必须向服务器发出获取请求,以获取显示通知所需的数据负载。什么是
self
?事件
包含什么?从错误中可以清楚地看出,在事件中没有属性数据
,
谢谢,伙计,我得到了这篇文章作为替代,但我不确定在fetch(一些API_端点)中传递什么,我建议在后端触发通知的任何东西都应该将其写入数据库(例如,id为11的新注释、id为44的新消息等)。当客户端收到推送消息时,它应发出请求,以获取该通知表中的新条目(或以何种方式实现)这将告诉客户端新通知是关于什么的。提取可能需要包含一些cookie或会话令牌,以便您可以仅传回给定用户的通知。
self.addEventListener('push', function(event){
var obj = event.data.json();
if(obj.action==='subscribe'||obj.action==='unsubscribe'){
fireNotification(obj,event);
port.postMessage(obj);
}else if(obj.action==='init'||obj.action==='chatMsg'){
port.postMessage(obj);
}
});
if (typeof event.data === 'undefined') { return; }