前端一提到 PWA,总有几种固定的声音:'浏览器打开不就挺好?''原生 App 都做了,还要这干嘛?''不就是加个 manifest 和 service worker 嘛。'——但真动手的时候,离线访问失效、安装提示不弹、推送通知调不通,这些坑一个没落下。
PWA 不是简单的技术堆叠。它让 Web 应用能像原生 App 一样离线运行、安装到主屏幕、接收推送通知,同时还保留了跨平台和免分发的优势。这篇文章会串一遍完整的配置要点,从 manifest 到 service worker 的缓存策略,再到推送通知的接入,该踩的坑我都一并标注。
manifest.json:不只是换个图标
很多人以为 manifest 只是给个应用名和几个图标尺寸,实际它决定了安装后的启动行为、显示模式、主题色以及状态栏样式。下面是一个典型的 manifest.json:
{
"name": "我的 PWA 应用",
"short_name": "PWA 应用",
"description": "一个完整的 PWA 应用示例",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#317EFB",
"icons": [
{
"src": "/icons/icon-72x72.png",
"sizes": "72x72",
"type": "image/png",

