|
| 1 | +# PWA 使用指南 |
| 2 | + |
| 3 | +## 什么是 PWA? |
| 4 | + |
| 5 | +PWA (Progressive Web App) 是一种可以像原生应用一样使用的网页应用。唯知导航支持完整的 PWA 功能,让你可以: |
| 6 | + |
| 7 | +- 📱 **安装到桌面/主屏幕** - 像原生应用一样使用 |
| 8 | +- 🔌 **离线访问** - 没有网络也能查看已保存的导航链接 |
| 9 | +- ⚡ **快速加载** - Service Worker 缓存,秒开应用 |
| 10 | +- 🎯 **应用快捷方式** - 快速访问搜索和管理功能 |
| 11 | + |
| 12 | +## 如何安装 |
| 13 | + |
| 14 | +### 桌面端(Chrome/Edge) |
| 15 | + |
| 16 | +1. 访问 [https://nav.weizwz.com](https://nav.weizwz.com) |
| 17 | +2. 点击地址栏右侧的 **安装图标** ⊕ |
| 18 | +3. 或者点击右上角菜单 → **安装唯知导航** |
| 19 | +4. 在弹出的对话框中点击 **安装** |
| 20 | + |
| 21 | +安装后,应用会出现在: |
| 22 | +- Windows: 开始菜单和桌面 |
| 23 | +- macOS: 应用程序文件夹和 Dock |
| 24 | +- Linux: 应用程序菜单 |
| 25 | + |
| 26 | +### 移动端(iOS Safari) |
| 27 | + |
| 28 | +1. 使用 Safari 浏览器访问 [https://nav.weizwz.com](https://nav.weizwz.com) |
| 29 | +2. 点击底部的 **分享按钮** 📤 |
| 30 | +3. 向下滚动,选择 **添加到主屏幕** |
| 31 | +4. 输入名称(默认为"唯知导航"),点击 **添加** |
| 32 | + |
| 33 | +### 移动端(Android Chrome) |
| 34 | + |
| 35 | +1. 使用 Chrome 浏览器访问 [https://nav.weizwz.com](https://nav.weizwz.com) |
| 36 | +2. 页面会自动弹出安装提示,点击 **安装** |
| 37 | +3. 或者点击右上角菜单 → **安装应用** |
| 38 | +4. 在弹出的对话框中点击 **安装** |
| 39 | + |
| 40 | +## PWA 功能特性 |
| 41 | + |
| 42 | +### 1. 离线访问 |
| 43 | + |
| 44 | +安装后,即使没有网络连接,你也可以: |
| 45 | +- 查看已保存的导航链接 |
| 46 | +- 浏览分类 |
| 47 | +- 使用站内搜索 |
| 48 | + |
| 49 | +**注意**:以下功能需要网络连接: |
| 50 | +- 添加新链接时自动获取网站图标 |
| 51 | +- 访问外部链接 |
| 52 | +- 使用搜索引擎搜索 |
| 53 | + |
| 54 | +### 2. 应用快捷方式 |
| 55 | + |
| 56 | +在桌面或主屏幕上长按应用图标,可以看到快捷方式: |
| 57 | +- **搜索** - 直接打开搜索功能 |
| 58 | +- **数据管理** - 快速进入数据管理页面 |
| 59 | + |
| 60 | +### 3. 自动更新 |
| 61 | + |
| 62 | +当有新版本发布时: |
| 63 | +1. 应用会在后台自动下载更新 |
| 64 | +2. 弹出提示询问是否立即更新 |
| 65 | +3. 点击"立即更新"后,应用会刷新到最新版本 |
| 66 | + |
| 67 | +### 4. 全屏体验 |
| 68 | + |
| 69 | +安装后的应用会以全屏模式运行: |
| 70 | +- 没有浏览器地址栏 |
| 71 | +- 没有浏览器工具栏 |
| 72 | +- 更大的可用空间 |
| 73 | +- 更接近原生应用的体验 |
| 74 | + |
| 75 | +## 技术实现 |
| 76 | + |
| 77 | +### Service Worker |
| 78 | + |
| 79 | +应用使用 Service Worker 实现离线功能和缓存: |
| 80 | + |
| 81 | +**缓存策略**: |
| 82 | +- **静态资源**:缓存优先(Cache First) |
| 83 | + - HTML、CSS、JavaScript、图片等 |
| 84 | + - 优先从缓存读取,提升加载速度 |
| 85 | + |
| 86 | +- **API 请求**:网络优先(Network First) |
| 87 | + - Favicon API 等动态内容 |
| 88 | + - 优先从网络获取,失败时使用缓存 |
| 89 | + |
| 90 | +**缓存管理**: |
| 91 | +- 自动清理旧版本缓存 |
| 92 | +- 智能更新缓存内容 |
| 93 | +- 避免缓存过期问题 |
| 94 | + |
| 95 | +### Manifest 配置 |
| 96 | + |
| 97 | +应用的 PWA 配置包括: |
| 98 | +- 应用名称和图标 |
| 99 | +- 启动 URL 和作用域 |
| 100 | +- 显示模式(独立应用) |
| 101 | +- 主题颜色 |
| 102 | +- 应用快捷方式 |
| 103 | + |
| 104 | +## 常见问题 |
| 105 | + |
| 106 | +### Q: 如何卸载 PWA? |
| 107 | + |
| 108 | +**桌面端**: |
| 109 | +- Windows: 设置 → 应用 → 找到"唯知导航" → 卸载 |
| 110 | +- macOS: 应用程序文件夹 → 拖动到废纸篓 |
| 111 | +- Chrome: chrome://apps → 右键应用 → 卸载 |
| 112 | + |
| 113 | +**移动端**: |
| 114 | +- iOS: 长按图标 → 删除应用 |
| 115 | +- Android: 长按图标 → 卸载 |
| 116 | + |
| 117 | +### Q: PWA 会占用多少存储空间? |
| 118 | + |
| 119 | +应用本身很小(约 2-5 MB),主要包括: |
| 120 | +- 应用代码和资源 |
| 121 | +- Service Worker 缓存 |
| 122 | +- 你保存的导航链接数据 |
| 123 | + |
| 124 | +### Q: 如何清除缓存? |
| 125 | + |
| 126 | +**方法一:通过浏览器** |
| 127 | +1. 打开浏览器开发者工具(F12) |
| 128 | +2. Application → Storage → Clear site data |
| 129 | + |
| 130 | +**方法二:重新安装** |
| 131 | +1. 卸载 PWA |
| 132 | +2. 清除浏览器缓存 |
| 133 | +3. 重新访问网站并安装 |
| 134 | + |
| 135 | +### Q: 为什么没有看到安装提示? |
| 136 | + |
| 137 | +可能的原因: |
| 138 | +1. 浏览器不支持 PWA(需要 Chrome/Edge/Safari 等现代浏览器) |
| 139 | +2. 网站必须通过 HTTPS 访问 |
| 140 | +3. 已经安装过应用 |
| 141 | +4. 之前关闭过安装提示(3 天后会再次显示) |
| 142 | + |
| 143 | +### Q: 离线时可以添加新链接吗? |
| 144 | + |
| 145 | +可以!所有数据都保存在本地 LocalStorage 中,离线时可以: |
| 146 | +- ✅ 添加、编辑、删除链接 |
| 147 | +- ✅ 搜索已保存的链接 |
| 148 | +- ✅ 管理分类 |
| 149 | +- ❌ 自动获取网站图标(需要网络) |
| 150 | + |
| 151 | +## 性能优化 |
| 152 | + |
| 153 | +PWA 带来的性能提升: |
| 154 | + |
| 155 | +1. **首次加载**:正常网络速度 |
| 156 | +2. **再次访问**:从缓存加载,速度提升 **80%+** |
| 157 | +3. **离线访问**:完全从缓存加载,**秒开** |
| 158 | +4. **更新检查**:后台静默更新,不影响使用 |
| 159 | + |
| 160 | +## 浏览器支持 |
| 161 | + |
| 162 | +| 浏览器 | 桌面端 | 移动端 | 备注 | |
| 163 | +|--------|--------|--------|------| |
| 164 | +| Chrome | ✅ | ✅ | 完整支持 | |
| 165 | +| Edge | ✅ | ✅ | 完整支持 | |
| 166 | +| Safari | ✅ | ✅ | iOS 需要手动添加 | |
| 167 | +| Firefox | ✅ | ✅ | 部分功能受限 | |
| 168 | +| Opera | ✅ | ✅ | 完整支持 | |
| 169 | + |
| 170 | +## 开发者信息 |
| 171 | + |
| 172 | +### 测试 PWA |
| 173 | + |
| 174 | +```bash |
| 175 | +# 本地开发需要 HTTPS |
| 176 | +pnpm dev:https |
| 177 | + |
| 178 | +# 或者使用生产构建测试 |
| 179 | +pnpm build |
| 180 | +pnpm serve:static |
| 181 | +``` |
| 182 | + |
| 183 | +### Service Worker 调试 |
| 184 | + |
| 185 | +1. 打开 Chrome DevTools |
| 186 | +2. Application → Service Workers |
| 187 | +3. 查看 Service Worker 状态和缓存 |
| 188 | + |
| 189 | +### Lighthouse 审计 |
| 190 | + |
| 191 | +```bash |
| 192 | +# 运行 Lighthouse 测试 |
| 193 | +npx lighthouse https://nav.weizwz.com --view |
| 194 | +``` |
| 195 | + |
| 196 | +检查项目: |
| 197 | +- ✅ PWA 优化建议 |
| 198 | +- ✅ 性能评分 |
| 199 | +- ✅ 可访问性 |
| 200 | +- ✅ 最佳实践 |
| 201 | +- ✅ SEO |
| 202 | + |
| 203 | +## 相关资源 |
| 204 | + |
| 205 | +- [PWA 官方文档](https://web.dev/progressive-web-apps/) |
| 206 | +- [Service Worker API](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) |
| 207 | +- [Web App Manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest) |
| 208 | +- [Workbox](https://developers.google.com/web/tools/workbox) - Service Worker 工具库 |
| 209 | + |
| 210 | +--- |
| 211 | + |
| 212 | +**享受 PWA 带来的原生应用体验!** 🚀 |
0 commit comments