PWA(渐进式 Web 应用)在在线串口调试工具中的极致实践

外场巡检、地下室车间等场景常常弱网甚至断网。纯在线网页一旦无法加载 JS,串口调试就中断。**PWA(Progressive Web App)** 可以把 Web Serial 工具做成「可离线打开的伪客户端」。

### 关键组成

  1. **`manifest.json`**:名称、图标、`display: standalone`、启动 URL,支持「添加到桌面」。
  2. **Service Worker**:在有网时缓存 HTML/JS/CSS/字体;离线时拦截导航请求,从 Cache Storage 返回。
  3. **安全上下文**:PWA 与 Web Serial 都要求 HTTPS(或 localhost)。

用户首次在线访问并安装后,即便拔掉网线,桌面图标仍可秒开应用,并继续调用 `navigator.serial` 读写本地 USB 串口——因为串口 I/O 发生在浏览器本地,并不依赖后端。

### 注意边界

  • 缓存的是前端静态资源,不是串口数据;业务日志仍只在内存/本机。
  • 应用大版本更新需 SW 更新策略(skipWaiting / clients.claim)避免旧壳。
  • iOS Safari 对 Web Serial 本身不支持,PWA 无法绕过硬件 API 限制。

对 Web Serial Pro 而言,PWA 兼顾「网页即更新」与「现场断网可用」,是现场工程师的实用增强,而非可有可无的噱头。