解决手柄在 Windows、macOS 和 Linux 上连不上的问题。涵盖 Xbox、PlayStation、Switch 及第三方手柄的 USB 和蓝牙连接排查。
如果电脑或浏览器识别不到你的手柄,这篇指南能帮你找出问题并解决。我们按主流手柄型号、操作系统和连接方式,逐一给出排查步骤。
先用我们的在线手柄测试测一下。连上手柄,按任意键。
重要:浏览器要等你按下按键或推动摇杆后才会识别手柄。这是 Gamepad API 的隐私保护机制,光插上是不够的。
Web Gamepad API 的设计是:只有在手柄上实际按下按键后,浏览器才会登记这个手柄。这是有意为之的隐私措施,防止网站通过已连接的设备给你“画像”。
如果是先打开页面后连的手柄,直接按一下按键就行,不用刷新。
在开始排查软件之前:
USB-C 对 USB-C 的线也不都一样。如果手柄附带了数据线,就用原装的那根。
不同浏览器对 Gamepad API 的支持差别很大:
小提示:如果一个浏览器识别不到手柄,就换一个试试。这是判断问题出在浏览器还是系统层面的最快方法。
检查以下各浏览器的设置:
chrome://flags,搜索“gamepad”about:config,搜索 dom.gamepaddom.gamepad.enabled 的值为 truedom.gamepad.extensions.enabledGamepad API 只在浏览器标签页处于前台并获得焦点时工作。切换到其他窗口或标签页后,手柄输入就会暂停。
先确认 Windows 能看到你的手柄:
也可以通过经典的“游戏控制器”对话框检查:
joy.cpl,按 Enter 键如果 Windows 完全看不到手柄,问题就出在连接或驱动上,而不是浏览器。
在设备管理器中检查驱动问题:
修复驱动问题:
Xbox 手柄在 Windows 上用蓝牙出了名地爱出状况:
在 Windows 上配对蓝牙手柄:
如果配对失败:
services.msc,找到“蓝牙支持服务”,右键点击 →“重新启动”从 macOS Catalina(10.15)开始,macOS 原生支持部分手柄:
已知问题:在 macOS 上,Chrome 识别不到某些 USB 手柄(尤其是 Xbox 手柄)。可以改用蓝牙连接,或者换 Firefox。这是 Chromium 的一个 bug,已经存在好几年了。
macOS 可能需要你明确授权,浏览器才能读取手柄输入:
修改权限后,可能需要重启浏览器才能生效。
如果手柄之前和游戏机配对过,它可能会尝试重新连接游戏机。先关掉游戏机,或者在游戏机上解除配对。
大多数新款手柄在 Linux 上靠内核自带的驱动就能用。检查是否识别:
lsusb,看看它是否出现dmesg | tail -20,查看连接信息/dev/input/js* 或 /dev/input/event* 设备jstest /dev/input/js0 直接测试按键和摇杆输入如果网页测试工具识别不到手柄,可以安装 jstest-gtk,用图形界面测试。
Linux 手柄驱动的几种选择:
hid-sony 和 hid-playstation 模块如果系统能识别手柄,但浏览器识别不到:
ls -la /dev/input/js*input 组:sudo usermod -aG input $USER(注销后重新登录)/usr/lib/udev/rules.d/70-steam-input.rules)已覆盖大多数手柄hid-sony 模块提供基本的 USB 支持DInput 和 XInput 的区别:XInput 是 Xbox 手柄和大多数 PC 游戏使用的现代标准,DInput 是较老的协议。浏览器对 XInput 手柄的处理更可靠。如果你的手柄能切换模式,一律选 XInput。
如果 USB 手柄识别不到:
适用于所有手柄的蓝牙通用排查方法:
小提示:如果蓝牙不稳定,USB 永远更可靠。只有确实需要无线时才用蓝牙。
有些软件会独占手柄输入,导致浏览器看不到手柄:
排查时尽量简化设备:
如果以上方法都试过了:
手柄连上之后,打开我们的手柄测试,确认所有按键、摇杆和扳机都工作正常,顺便检查一下有没有摇杆漂移。