从您的应用连接到不常见的设备。
什么是 WebHID API?
许多人机接口设备 (HID) 太新、太旧或太不常见,系统的设备驱动程序无法访问它们。WebHID API 通过提供一种在 JavaScript 中实现设备专用逻辑的方法来解决此问题。
WebHID API 的建议用例
HID 可从人接受输入或向人提供输出。设备示例包括键盘、指控设备(鼠标、触摸屏等)和游戏手柄。借助 HID 协议,您可以在桌面设备上使用操作系统驱动程序来访问这些设备。Web 平台通过依赖这些驱动程序来支持 HID。
在游戏手柄支持方面,无法访问不常见的 HID 设备尤为令人头疼。专为 PC 设计的游戏手柄通常使用 HID 来处理游戏手柄输入(按钮、摇杆、扳机)和输出(LED、振动)。不过,游戏手柄输入和输出未得到充分标准化,并且网络浏览器通常需要针对特定设备使用自定义逻辑。这种做法不可持续,会导致对大量旧款和不常见设备的支持不佳。这还会导致浏览器依赖于特定设备行为中存在的怪癖。
演示、演示、演示
如果您想了解其中任何示例的运作方式,可以前往 GitHub 查看所有示例的源代码。该说明文档中提供了一个基础代码示例。
MacBook Pro 键盘背光
试用这些演示版的最大障碍是无法访问设备。幸运的是,如果您使用的是带有 Touch Bar 的 MacBook Pro,则无需购买任何设备。通过此演示,您可以直接在笔记本电脑上使用该 API。它还展示了如何使用 WebHID 解锁内置设备(而不仅仅是外围设备)的功能。
作者:FWeinb
演示/来源: 键盘背光
游戏控制器
PlayStation 4 无线控制器
接下来介绍的设备可能只有少数人拥有。Sony 的 DualShock 4 是 PlayStation 4 游戏机的无线控制器。
DualShock 4 演示版使用 WebHID 接收 DualShock 4 的输入原始报告,并提供一个高级 API 来访问控制器的陀螺仪、加速度计、触控板、按钮和摇杆输入。它还支持振动和设置控制器内置 RGB LED 的颜色。
作者:TheBITLINK
演示: DualShock 4 演示(来源)
Nintendo Switch Joy-Con 控制器
将 Nintendo Switch Joy-Con 控制器放入裤兜,然后通过实际跳跃来玩 Chrome 恐龙 🦖 离线游戏。此演示由 Joy-Con WebHID 提供支持,它是适用于 Nintendo Switch Joy-Con 控制器的 WebHID 驱动程序。
作者: Thomas Steiner
演示: Chrome Dino WebHID(演示源代码、驱动程序源代码)
BlinkStick Strip
BlinkStick Strip 是一款符合 HID 标准的灯条,带有 8 个 RGB LED。在该演示中,用户可以从多个闪烁模式(包括追光、闪烁和 Larson 扫描器 [也称为“Cylon”])中进行选择。
作者:Robat Williams
演示: blinkstick-strip(来源)
闪烁、闪烁、闪烁
此演示有何用途?(请稍等。)它会闪烁。实际上,这三个演示都使用了 blink(1) USB 通知灯。
blink(1) 简单且文档完善,是开始使用 HID 的绝佳选择。
作者:Tod E. Kurt
演示: blink(1)(源代码)
致谢
感谢 Pete LePage 和 Kayce Basques 对本文的审核。
照片由 UgurAkdemir 拍摄,选自 Unsplash