SuperAPI AI 工具集

pwa-expert

前端与建站

查看项目

更新于 10-15 13:10

技能介绍

pwa-expert 是一个专注于渐进式 Web 应用(PWA)开发的技能,帮助开发者构建可安装、支持离线、具有原生应用般体验的 Web 应用。

【用途】 适用于以下场景:让 Web 应用在移动端或桌面端可安装;实现离线功能;设置 Service Worker 缓存策略;处理安装提示(beforeinstallprompt);为离线优先应用做后台同步;管理 PWA 更新流程;创建 Web App Manifest。

不适用于:原生应用开发(应使用 React Native、Flutter 或原生 SDK);通用 Web 性能优化(应使用 Lighthouse/性能审计工具);服务端渲染问题(应参考 Next.js/框架专属文档);仅需推送通知(可考虑专用推送服务);简单静态站点(PWA 的额外开销可能不划算)。

【主要能力】

  1. Web App Manifest 配置:提供完整的 manifest.json 示例,包含 name、short_name、description、start_url、scope、display、orientation、background_color、theme_color、icons(192×192 与 512×512,含 maskable 用途)以及 shortcuts。说明 display 模式(fullscreen、standalone、minimal-ui、browser)与 HTML 中的链接方式。
  2. Service Worker 基础:提供注册代码(lib/pwa.ts)与基本 Service Worker 结构(public/sw.js),包含 install 阶段缓存静态资源、activate 阶段清理旧缓存、fetch 阶段处理请求。
  3. 缓存策略:列出 Cache-First(适合静态资源、字体、图片)、Network-First(适合 API 数据、用户内容)、Stale-While-Revalidate(平衡新鲜度与速度)、Network-Only(认证、实时数据)、Cache-Only(版本化资源)五种策略及其取舍。
  4. 安装提示:处理 beforeinstallprompt 事件,展示自定义安装 UI,提供 deferredPrompt 的 useState 模式与 handleInstall 逻辑,并指出 references/install-prompt.md 中有完整的 usePWAInstall hook 与组件。
  5. 离线体验:离线页面回退、useOnlineStatus hook 检测连接状态、离线横幅提示用户,详见 references/offline-handling.md。
  6. 后台同步:在 Service Worker 中监听 sync 事件,在应用中通过 registration.sync.register 触发同步,详见 references/background-sync.md(含 IndexedDB 集成)。
  7. 更新流程:监听 updatefound 与 statechange,在新版本可用时提示用户,详见 references/update-flow.md。
  8. Next.js 集成:提供 next-pwa、自定义 SW(用于 output: 'export' 静态站点)、Workbox CLI 三种方案,详见 references/nextjs-integration.md。
  9. 快速参考:检查是否已安装、强制更新 SW、清空缓存、检查在线状态、获取 SW 注册、跳过等待、取得控制权等常用操作。
  10. 测试与调试:Chrome DevTools 的 Application 面板、Lighthouse PWA 审计、Network 离线模拟,以及一份调试清单。

【使用方式】 该技能以文档与代码示例形式提供,可直接参考其中的 manifest.json、Service Worker 代码、注册函数、安装提示与更新流程代码进行集成。较详细的实现位于 /references/ 目录下:service-worker-patterns.md、install-prompt.md、offline-handling.md、background-sync.md、update-flow.md、nextjs-integration.md。文档中给出的代码与配置可原样使用或按需调整。

【适用场景与限制】 适用于需要可安装、离线优先、具备应用化行为的 Web 项目,尤其是使用 React/Next.js 的 PWA。限制方面:不适用于原生应用开发、通用 Web 性能优化、服务端渲染问题、仅推送通知需求与简单静态站点。PWA 可安装的前提是 HTTPS(或开发环境 localhost)、包含必需字段的 Web App Manifest、带 fetch 处理器的 Service Worker,以及至少 192×192 和 512×512 的图标。