Web Serial 强制「用户手势 → 系统端口选择器」授权模型,避免网页静默占用 COM。首次成功选择后,浏览器会记住该源与设备的授权关系,形成 **已授权端口列表**。
### 常用 API
- `navigator.serial.requestPort()`:弹出选择器,获取新授权。
- `navigator.serial.getPorts()`:返回本源已授权的 `SerialPort[]`,可在页面加载后静默列出并一键重连(仍需你的业务按钮触发 open 更稳妥)。
- `await port.forget()`:撤销该端口授权,下次必须重新 requestPort。
### 产品体验建议
- 启动时 `getPorts()`,若非空显示「上次设备」快捷连接。
- 设置页提供「清除串口授权」调用 forget,方便公用电脑。
- 热插拔后结合 `connect` / `disconnect` 事件刷新列表。
### 隐私与安全
授权绑定到 **源(origin)**,不是整个浏览器任意网页通用。HTTPS 证书变更、清除站点数据会导致授权丢失。iframe 内还受 Permission-Policy 约束(见 iframe 专题文)。
掌握 getPorts + forget,就能在「免安装串口助手」里做出接近桌面软件的重连体验,同时保持可撤销的安全边界。