使用推送事件的数据推送通知

时间:2016-09-24 06:15:04

标签: javascript push-notification service-worker chrome-gcm

我正在尝试使用GCM推送通知,能够在推送事件上显示带有硬编码数据或消息的通知。但是当我尝试使用数据对象作为Json推送自定义消息时,Push事件正在触发,但是,数据对象始终在寻找为null。

服务工作者代码:sw.js

 self.addEventListener('push', function(event) {
 console.log('Received a push message', event);
 console.log("event data",event.data);//here data is giving as null
var data=event.data.json();
var title= data.title||'No tiltle';
 var body= data.message||'no messgae';

event.waitUntil(
self.registration.showNotification(title, {
  body: body,
  icon: icon,
  tag: tag


  })
  );
  });

我正在使用第三方网站(requestmaker.com)来检查通知。 格式我发送如下

 URL:https://android.googleapis.com/gcm/send
 content-type:application/json
 authorization:key=XXXXXXXXXX

以下是数据格式

 {
 "registration_ids":["someid"],
    "data":{"title":"hai",
    "body":"hello new message"
   }
 }

如何在推送事件中获取数据以及我必须以哪种格式发送数据作为请求,以便我可以在推送事件(event.data)上获取该数据。

2 个答案:

答案 0 :(得分:0)

您可以访问有关通知点击触发事件的数据。

self.addEventListener('notificationclick', function(event) {

 // here data you access from event using event.notification.data
  console.log('On notification click: ', event.notification.tag);

}

答案 1 :(得分:0)

从触发的推送通知中,有效负载数据不会被发送到服务工作者。您必须使用浏览器身份验证密钥,同时触发有效负载的推送通知。

有关详细信息,请参阅以下文档。 https://developers.google.com/web/updates/2016/03/web-push-encryption?hl=en