# Cursor PWA 离线应用教程：断网也能打开的出行清单，更新后保留勾选

Cursor PWA 离线应用教程。已确认Service Worker受控后断网冷导航、v2接管并保留勾选，另在干净上下文恢复备份；Cursor会话未执行。

## 开始

先读 task.md 和 prompt.md。starter 是可打开但未实现任务逻辑的起点工程，reference 是本站人工完成的参考。目标代理没有参与生成此次原生账号会话，不能把参考代码称为该产品已执行结果。

```bash
python3 -m http.server 8073 --directory reference
```

HTTP网页访问 http://127.0.0.1:8073/ ，按顺序点击输入、操作和导出控件。8073是示例端口，可自行换用空闲端口。

## 文件

- starter/：起点工程及明确需求。
- reference/：可运行人工参考、原创输入和实际运行结果。
- task.md：七步任务和独立验收。
- verify.py：回读实际下载文件、结果结构和边界的检查。
- native-*-draft.*（若有）：原生结构草案，明确未完成导入/运行验证。

## 本题操作要点

1. 12个item_id从I01到I12，勾选状态放在packing-state-v1键，与静态缓存分开。先在线完整加载，不能直接从未缓存的干净浏览器离线打开。

2. manifest声明本地应用入口与图标；不同设备的安装UI不同，这里验收网页离线，不声称每个平台都能安装。

3. sw.js安装时预缓存HTML/JS/CSS/items，activate后clients.claim；测试必须确认navigator.serviceWorker.controller。

4. 勾选证件和水杯并下载packing-backup.json。恢复只接受布尔值映射，按稳定ID保留状态，不依赖列表位置。

5. 先断网，再真正导航/刷新到受控页面；截图中的页面经过冷导航，不是只把已显示DOM切成Offline。

6. 运行upgrade.py把静态缓存改为v2并增加I13/I14。更新Worker后确认v2已接管、旧缓存已删，再断网冷导航，旧勾选保持。

7. 另建全新浏览器上下文：未缓存时离线打不开是正确负例；联网加载后导入备份应恢复勾选。实测记录含cacheKeys与context隔离。

## 官方依据

- https://cursor.com/docs/agent/browser
- https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers

Google与抖音查询词是内容目标，不代表实测搜索量、热榜或流量结果。
