🎮 手柄诊断

判断浏览器到底有没有拿到手柄。系统蓝牙连上 ≠ 浏览器能读到 —— 这两件事是独立的。

环境

navigator.getGamepads() 的 4 个槽位
槽位全灰 = 浏览器一个手柄都没看到。这是最关键的判据。

如果上面显示 0 个手柄

  1. 按一下手柄任意键 —— Chrome 的硬性规矩:手柄连上后必须按一次键,浏览器才会把它暴露给网页。这是最常见的原因。
  2. 先点一下本页面再按键 —— 窗口没获得焦点时,Chrome 不派发手柄输入。
  3. 完全退出 Steam(含菜单栏托盘图标)—— Steam 会独占手柄,把输入抢走。
  4. 换一个浏览器交叉验证:Chrome / Edge / Firefox / Safari 各试一次。 只要有一个能识别,就说明是浏览器层的问题,不是手柄坏了。
  5. 蓝牙里 「忽略此设备」→ 重新配对,然后重启浏览器(只重连手柄不重启浏览器常无效)。
  6. 用 USB-C 数据线直连试一次。有线能识别、无线不能 → 是蓝牙协议层的兼容问题。
为什么系统连上了浏览器却读不到?系统蓝牙只负责「配对和连接」,把输入交给应用是另一回事。 Nintendo Switch Pro 手柄在部分 macOS 版本上存在已知兼容问题:系统里显示已连接, 但应用拿不到 HID 输入报告。这种情况用 USB 线连通常立刻可用。

事件日志