微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 PWA Service Worker 中安排周期性任务

如何解决如何在 PWA Service Worker 中安排周期性任务

我想在我的 PWA 中安排一个周期性任务,然后我可以在每天的某个特定时间显示通知

我尝试了通知 API:https://web.dev/notification-triggers/,它似乎有效。但是,根据文档,它仍然需要在App的页面上下文中设置Interval,例如

setInterval(() => navigator.serviceWorker.getRegistration().then(reg=>{
  if (!reg) {
    return
  }
  reg.showNotification('test',{
      tag: 'test-tag',body: 'This notification was scheduled 1min ago',showTrigger: new TimestampTrigger(new Date().getTime() + 60 * 1000),});
  }),60 * 1000)

这不是我理想的解决方案,如果我关闭我的应用程序,将不会触发通知

然后我尝试了periodicSync API:https://web.dev/periodic-background-sync/,例如

await registration.periodicSync.register('periodic-notification',{
  minInterval: 60*1000
});

根据我的测试,如果我在 periodicSync手动触发它们,Service Worker 可以接收到 dev-tool->Application->Service Workers->Periodic Sync button 事件。但我期待的是每 1 分钟收到一次 periodicSync 事件。根据文档,似乎它与site-engagement有关,那么它不是一个真正的周期性任务。

解决此问题的任何想法吗? 谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。