Service 推送通知/服务工作人员问题

Service 推送通知/服务工作人员问题,service,notifications,push,worker,Service,Notifications,Push,Worker,我正在尝试向用户发送推送通知。当通知到达时单击通知,一切似乎都很好。访问者被重定向到正确的URL,但当我等待大约20分钟时问题就开始了。然后访问者被重定向到未定义的URL。这意味着推送通知不再记住URL 这是我的服务人员: 'use strict'; self.addEventListener('push', function(event) { console.log('[Service Worker] Push Received.'); console.log(`[Service W

我正在尝试向用户发送推送通知。当通知到达时单击通知,一切似乎都很好。访问者被重定向到正确的URL,但当我等待大约20分钟时问题就开始了。然后访问者被重定向到未定义的URL。这意味着推送通知不再记住URL

这是我的服务人员:

'use strict';

self.addEventListener('push', function(event) {
  console.log('[Service Worker] Push Received.');
  console.log(`[Service Worker] Push had this data: `);
  console.log(JSON.parse(event.data.text()));//
  const notificationObject = JSON.parse(event.data.text());//

  const title = notificationObject.title;//modified from tutorial to make it more dynamic
  const options = {
    body: notificationObject.msg,
    icon: notificationObject.icon,
    badge: notificationObject.badge,
  };
  self.notificationURL = notificationObject.data;
  event.waitUntil(self.registration.showNotification(title, options));
});

self.addEventListener('notificationclick', function(event) {
  console.log('[Service Worker] Notification click Received.');
  //console.log(self.notificationURL);
  event.notification.close();

  event.waitUntil(
    clients.openWindow(self.notificationURL)
  );
});
有人知道为什么用户在20分钟后会重定向到未定义的页面,但在前20分钟一切正常吗


推送服务是否会忘记发送的数据?这在桌面和android上都有发生

我看到了同样的行为。你知道吗?是的。这就是发生的事情。我找到了一种方法,将URL保存在缓存中,然后在有人单击推送时从缓存中检索。事实上,我昨天找到了一种更好的方法。你需要创建一个新的“数据”“在包含url属性的通知对象中创建模型,然后您可以通过event.notification.data object.I在NotificationClick事件中检索该模型“我看到了同样的行为。你有没有想过?有。事情就是这样。我找到了一种解决方法,将URL保存在缓存中,然后在有人点击push时从缓存中检索。事实上,我昨天找到了一种更好的方法。您需要在包含url属性的通知对象中创建新的“数据”模型,然后可以通过event.notification.data对象在NotificationClick事件中检索该模型。