PWA 实现与落地
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-fec-pwa-implementation。
技能介绍
要解决什么问题
很多 Web 应用在移动端只是「浏览器里打开的一个标签页」:弱网时白屏、重复访问仍依赖全量拉取,也没有稳定的安装入口。PWA 不是给所有站点贴标签,而是在面向安装、离线兜底、重复访问的场景里,把 manifest、Service Worker 和缓存策略串成一条可验收的落地路径。
技能如何引导落地
技能按 Procedure 拆成可执行的检查清单:
- 值不值得做:纯内部后台、强实时流媒体或只需普通 HTTP 缓存时,不必强行 PWA。
- 基础面:补齐
manifest、192/512 图标(Android 需 maskable、iOS 需 apple touch icon)、主题色与 HTML 引用。 - Service Worker:注册 SW 并设计用户可见的更新提示;避免静默
skipWaiting()后直接强刷页面。 - 缓存分层:用 Workbox 或框架插件区分 precache / runtime cache;登录、支付、权限变更等敏感请求必须走网络。
- 体验与验收:提供 offline fallback、安装提示 UI,并验证首次加载、离线访问、更新激活、卸载重装。
Detailed References 指向 manifest 与 Workbox 专题文档,便于对照字段、Vite 集成与更新流程。
边界与注意点
- Service Worker 仅在 HTTPS 下工作(
localhost除外)。 - iOS PWA 能力弱于 Android,安装、推送与生命周期需单独验证。
- 缓存有配额与逐出机制,需设置 max entries / max age。
- 预期产出包括 Lighthouse PWA、DevTools Application 面板、离线模式与移动端安装流程的可重复验证。
使用场景
- 面向移动端重复访问的产品页,需要补齐 manifest、图标与「添加到主屏幕」安装流程
- 弱网场景下静态资源与页面要有 offline fallback,同时登录与支付接口仍强制走网络
- 使用 Vite 构建的前端项目,要接入 Workbox 区分 precache 与 runtime cache 策略
- 发版前需设计 Service Worker 更新提示,避免 skipWaiting 后静默强刷用户当前页面
适合人员
- 负责面向 C 端 Web 产品的前端,要在不改原生 App 的前提下支持安装与弱网可用
- 维护 Vite/React/Vue 站点的前端,需要把 Workbox 或框架 PWA 插件接到现有构建流水线
- 上线前做质量门禁的技术负责人,要用 Lighthouse PWA 与 DevTools Application 验收缓存与离线行为
- 同时覆盖 Android 与 iOS 的移动端 Web 负责人,需单独验证 maskable 图标、apple touch icon 与 iOS 生命周期限制