Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从事件中提取JSON对象_Javascript_Json_Service Worker - Fatal编程技术网

Javascript 从事件中提取JSON对象

Javascript 从事件中提取JSON对象,javascript,json,service-worker,Javascript,Json,Service Worker,当我试着运行代码时,我得到了“无法读取未定义的属性‘json’”错误。任何人都可以提出一种替代方法吗?在请求json()之前,您应该测试数据是否存在 像 如果您今天在Chrome中尝试此功能,问题在于Chrome当前不支持推送事件的数据属性,也就是说,您无法以正常的GCM方式发送带有推送消息的有效负载 Chrome应在2016年初提供支持,但目前您必须向服务器发出获取请求,以获取显示通知所需的数据负载。什么是self?事件包含什么?从错误中可以清楚地看出,在事件中没有属性数据,谢谢,伙计,我得到

当我试着运行代码时,我得到了“无法读取未定义的属性‘json’”错误。任何人都可以提出一种替代方法吗?

在请求json()之前,您应该测试数据是否存在


如果您今天在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; }