Maui Blazor 中文社区 QQ群:645660665

企业H5站点升级PWA (八)

图片里的 推送, 同步, 定期同步 有什么作用?

image

下面这三个按钮都是 Chrome/Edge DevTools 里 专门用来调试 Service Worker 的模拟入口,不会自动出现在真实用户环境里,只对当前开发者工具页面生效:

  1. 推送(Push)
    • 作用:模拟服务器发来的 push 消息。
    • DevTools 会向你的 Service Worker 触发一个 push 事件:
 self.addEventListener('push', event => {
     // 这里的代码会被执行
     });
  • 你在输入框里填的内容会作为 event.data.text() 提供给 SW,用来调试 Web Push 通知逻辑,而不需要真的接入 FCM/自己的推送服务器。
  1. 同步(Sync)
    • 作用:模拟一次 后台同步(Background Sync) 事件。
    • 会触发你在 SW 中注册的 sync 事件:
 self.addEventListener('sync', event => {
     if (event.tag === 'test-tag-from-devtools') {
         // 这里执行你要在恢复网络时重试的逻辑
     }
 });
  • 输入框里的字符串就是 event.tag,用来区分不同的同步任务。
  • 场景:比如离线时把请求暂存起来,网络恢复后自动重试上传。
  1. 定期同步(Periodic Sync)
    • 作用:模拟 Periodic Background Sync(周期性后台同步)事件。
    • 会触发:
 self.addEventListener('periodicsync', event => {
     if (event.tag === 'test-tag-from-devtools') {
         // 周期性拉取配置/消息之类的逻辑
         }
     });
  • 同样,输入框里的值是 event.tag
  • 真实环境下,这个特性受浏览器和权限限制较大,DevTools 提供这个按钮方便你在本地测试处理逻辑。

如果你的 sw.js 里目前没有 push / sync / periodicsync 的事件监听,这三个按钮点了也不会有任何效果;要利用它们,需要在 Service Worker 里显式添加对应的事件处理代码。

posted @ 2026-02-18 20:13  AlexChow  阅读(1667)  评论(0)    收藏  举报