浏览器api是pwa实现类原生体验的技术基础,包括service worker(离线与资源控制)、web app manifest(安装为应用)、cache api与background sync(可靠性增强)、notifications与push api(用户触达闭环)。

浏览器API是PWA(渐进式Web应用)能实现“类原生体验”的技术基础——没有它们,PWA就只是个普通网页。
Service Worker:离线能力与资源控制的核心
Service Worker 是 PWA 的底层引擎,它是一个可编程的网络代理,运行在浏览器主线程之外,能拦截、修改甚至伪造网络请求。它让 PWA 具备离线访问、后台同步、消息推送等关键能力。
- 必须通过 HTTPS(或 localhost)注册,否则浏览器直接拒绝安装
- 需在页面加载早期调用 navigator.serviceWorker.register(),且推荐使用 scope 精确控制作用范围
- 常见模式:在 install 阶段缓存核心静态资源(HTML/CSS/JS),在 fetch 阶段实现缓存优先 + 网络回退(Cache-First with Network Fallback)
- 注意生命周期:更新 SW 不会立即生效,需手动 skipWaiting() 或等待用户关闭所有标签页
Web App Manifest:让网页“安装”为应用的关键
manifest.json 文件告诉浏览器“这个网页可以当应用用”,它定义了图标、启动页、显示模式(standalone)、主题色等元信息,是触发“添加到主屏幕”提示和生成桌面快捷方式的前提。
- 必须通过 在 HTML 中声明,路径需可被公开访问
- 关键字段如 start_url 决定点击图标后打开的入口页,display: "standalone" 隐藏地址栏,营造原生感
- 图标尺寸建议覆盖 192x192 和 512x512,并提供多种格式(PNG 推荐,SVG 不被所有浏览器支持)
- 修改 manifest 后,已安装的 PWA 不会自动更新,需配合 Service Worker 更新逻辑或用户手动刷新
Cache API 与 Background Sync:增强可靠性的配套能力
Cache API 提供持久化、可编程的请求/响应存储机制,专为 Service Worker 设计;Background Sync 则解决弱网或断网时的“延迟提交”问题,比如表单提交、日志上报。
- Cache API 不是 localStorage,不支持直接存 JS 对象,只能存 Request/Response 对象(可用 JSON.stringify + Blob 转换后缓存)
- 多个缓存可共存(如 'static-v1', 'dynamic-pages'),便于版本管理和清理
- Background Sync 需先注册 sync event(如 registration.sync.register('submit-form')),再在 SW 的 sync 事件中处理,目前仅 Chrome 和 Edge 支持,且要求用户至少一次主动访问过站点
- 注意权限:Background Sync 属于高权限 API,若用户禁用后台活动或启用省电模式,可能被系统暂停
Notifications API 与 Push API:构建用户触达闭环
这两者配合 Service Worker,让 PWA 拥有跨平台的消息推送能力。Push API 负责接收服务器下发的消息(即使页面未打开),Notifications API 负责在前台展示通知。
- 需用户明确授权(Notification.requestPermission()),且首次调用必须由用户手势(如点击按钮)触发
- Push 消息本身不携带内容(最小化设计),收到后应在 Service Worker 中调用 showNotification() 渲染 UI
- 需后端配合:使用 VAPID 协议生成密钥对,向 Push Service(如 Firebase Cloud Messaging)发送加密消息
- 注意兼容性:Safari 目前仅支持网页内通知(需页面处于前台),不支持后台 Push
这些 API 单独存在时只是功能模块,但组合起来就构成了 PWA 的能力矩阵——从可安装、可离线,到可推送、可同步,每一块都依赖浏览器原生支持,无法被 polyfill 替代。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











