WhatsApp 网页版在登录阶段会把会话密钥、设备指纹和消息索引写入 IndexedDB,并在首次同步时占用数百 MB 的临时空间。多数情况下,Chrome 与 Edge 的配额策略是「磁盘可用空间的 60%」,Firefox 默认按「组限制」计算(每组最多 2GB,可通过 dom.storage.group_usage_limit 调整),Safari 在 ITP 开启时对第三方存储更严格。若浏览器剩余空间低于 500MB,登录二维码扫描后常停在「正在同步消息」并最终报错。
如何确认浏览器内核与配额
在地址栏输入 chrome://version(Edge 为 edge://version)可查看完整内核版本。Chrome 110 及以上、Edge 110 及以上、Firefox 110 及以上、Safari 16.4 及以上是当前较稳妥的区间。配额可用以下方式估算:
- Chrome / Edge:打开 DevTools → Application → Storage,查看 Quota 字段。
- Firefox:
about:config 搜索 dom.storage 查看组限制。 - Safari:开发菜单 → 存储 → 查看站点数据上限,通常为 1GB 左右。
如果配额低于 300MB,建议先清理其他站点的存储再重试,而不是反复刷新二维码。
无痕模式与隐私设置的行为差异
无痕窗口下 IndexedDB 在关闭窗口时立即清除,WhatsApp 网页版无法维持会话,扫码后通常 10~30 秒内自动登出。部分用户在无痕模式下看到「二维码已扫描」但页面不跳转,原因就是存储写入被拒绝。Safari 的「阻止跨站跟踪」和 Firefox 的「严格」跟踪保护会拦截 WebSocket 之外的存储请求,表现为登录按钮无响应。判断方法:在 DevTools 的 Console 中查看是否出现 QuotaExceededError 或 SecurityError,出现即说明存储被策略阻断。
扩展拦截的排查顺序
广告拦截类扩展(uBlock Origin、AdGuard)和脚本管理器(Tampermonkey)常拦截 web.whatsapp.com 的 /ws 与 /wss 请求。排查时按以下顺序操作:
- 打开扩展管理页,逐个禁用后刷新页面,每次只改一个变量。
- 在 DevTools → Network 中筛选
ws,确认 WebSocket 是否返回 101。 - 检查是否有企业代理或 DNS 过滤把
*.whatsapp.net 解析到错误地址。 - 若使用内容拦截器(如 NextDNS),临时关闭后重试。
一般 3~5 分钟内可定位到具体扩展;若全部禁用后仍失败,问题更可能出在网络层而非浏览器。
权限状态与系统级限制
摄像头权限被拒时,二维码区域显示为空白而非报错,这是最容易被忽略的失败形态。Chrome 与 Edge 在地址栏左侧显示摄像头图标,Firefox 在权限面板中单独列出,Safari 需在「设置 → 网站 → 摄像头」中放行。通知权限影响消息提醒但不阻断登录,可在登录成功后再授权。麦克风权限仅在语音通话时请求,登录阶段无需开启。若系统层面(macOS 的隐私与安全性、Windows 的相机隐私设置)禁用了浏览器访问摄像头,页面内授权不会生效,必须先改系统设置。