推送浏览器通知 - 点击动态网址

时间:2018-03-22 09:51:04

标签: google-chrome service-worker

我在我的项目中使用推送浏览器通知,一切正常,除了点击通知,我希望它根据通知数据打开动态网址

我的代码

$("#pagin li a").closest(".current").prev(".pagination")
$("#pagin li a.current").prev()
$("#pagin li a.pagination.current").prev()

所以有什么属性我可以推进事件?喜欢url还是某事?

2 个答案:

答案 0 :(得分:3)

您可以传入一个字符串化的对象(带有JSON.stringify()),然后将其解析回event.data.json()的对象,而不是仅将文本传递到推送处理程序中。然后,您可以将url设置为通知对象的data属性的一部分。

self.addEventListener('push', function(event) {
  const myObject = event.data.json();
  const options = {
    body: myObject.bodyText,
    data: myObject.url,
    ...
  };
  return self.registration.showNotification(myObject.title, options);
});

稍后可以在“notificationclick”事件中访问数据对象

self.addEventListener("notificationclick", function(event) {
  event.waitUntil(clients.openWindow(event.notification.data.url));    
});

答案 1 :(得分:0)

上面的答案有一个错误,因为RewriteCond %{QUERY_STRING} (?:^|&)param1\[\]=([^&]*) [NC] RewriteRule ^ %{REQUEST_URI}/%1 [QSD,L,R=301] 中不存在url,因为他说您必须使用data传递json字符串,然后使用{{将其转换回json 1}},所以这是我最后的正确代码。

JSON.stringify()