SuperAPI AI 工具集

pwa-development

编程与开发

查看项目

更新于 10-16 10:37

技能介绍

该技能用于渐进式 Web 应用(PWA)开发,目标是构建可安装、可离线、跨平台运行的 Web 应用。

用途 适用于构建 PWA、实现 Service Worker,或打造离线优先(offline-first)体验的场景。

主要能力

  1. Web App Manifest:示例包含 name、short_name、start_url、display、theme_color、icons(多种尺寸,含 maskable)、screenshots(宽/窄屏)、shortcuts、share_target 等字段配置。
  2. HTML 元标签:提供 manifest 链接、theme-color,以及 iOS(apple-mobile-web-app-capable、status-bar-style、title、apple-touch-icon)和 Windows(msapplication-TileColor、TileImage)专属标签。
  3. Service Worker:基础示例演示 install 阶段缓存静态资源、activate 阶段清理旧缓存、fetch 阶段采用缓存优先并回退网络;另推荐使用 Workbox,通过 precacheAndRoute、registerRoute 配合 CacheFirst、NetworkFirst、StaleWhileRevalidate 策略及 ExpirationPlugin 设置缓存条目与过期时间。
  4. 注册与更新:提供注册 Service Worker 的代码,监听 updatefound 与 statechange,在安装完成后派发自定义更新事件。
  5. 安装提示:提供 React 自定义安装按钮,处理 beforeinstallprompt 事件、display-mode: standalone 判断及 userChoice 结果。
  6. 离线支持:提供 useOnlineStatus 钩子监听 online/offline 事件并展示离线横幅;并以 sync 事件示例说明后台同步,含以 IndexedDB 存储待发请求、注册 sync 及不支持时的降级处理。
  7. 推送通知:展示申请权限并 subscribe(userVisibleOnly、applicationServerKey),以及在 Service Worker 中处理 push 与 notificationclick。
  8. Vite PWA 插件:示例配置 registerType: autoUpdate、includeAssets、manifest 与 workbox 的 globPatterns 及 runtimeCaching(NetworkFirst 示例)。
  9. 浏览器支持表:列出离线访问、安装提示、推送通知、后台同步、文件处理、分享目标在各浏览器的支持情况(如推送通知除 iOS Safari 外均支持)。

测试 说明 Lighthouse 12+ 已无 PWA 分类,可在 DevTools > Application > Manifest 检查可安装性;目标分数为性能 90+、无障碍 90+、最佳实践 90+。并注明仅在用户要求时运行这些检查。

最佳实践 建议使用 HTTPS(必需)、提供离线回退、缓存静态资源、显示更新通知、适配各种屏幕尺寸;避免永久缓存一切、因 SW 更新阻塞应用、忽略 iOS 限制、遗漏 manifest 图标、遗忘离线状态。