从应用连接到不常见的设备。
什么是 WebHID API?
许多人机接口设备 (HID) 太新、太旧或太不常见,以至于无法通过系统的设备驱动程序进行访问。WebHID API 通过提供一种在 JavaScript 中实现设备专用逻辑的方式来解决此问题。
WebHID API 的建议用例
HID 从人那里获取输入或向人提供输出。设备示例包括键盘、指控设备(鼠标、触摸屏等)和游戏手柄。 借助 HID 协议,您可以在桌面设备上使用操作系统驱动程序来访问这些 设备。Web 平台通过依赖这些驱动程序来支持 HID。
在游戏手柄支持方面,无法访问不常见的 HID 设备尤其令人头疼。专为 PC 设计的游戏手柄通常使用 HID 进行游戏手柄输入(按钮、操纵杆、触发器)和输出(LED、震动)。不过,游戏手柄输入和输出并未得到很好的标准化,Web 浏览器通常需要针对特定设备使用自定义逻辑。这是不可持续的,并且会导致对较旧和不常见的设备的支持不佳。它还会导致浏览器依赖于特定设备行为中存在的怪异之处。
演示、演示、演示
如果您对这些示例的运作方式感到好奇,可以在 GitHub 上找到所有示例的源代码。说明文档中提供了一个 最基本的代码示例。
MacBook Pro 键盘背光
尝试这些演示的最大障碍是无法访问设备。幸运的是,如果您有带 TouchBar 的 MacBook Pro,则无需购买任何东西。此演示可让您直接从笔记本电脑使用该 API。它还展示了如何使用 WebHID 来解锁内置设备(而不仅仅是外围设备)的功能。
作者: FWeinb
演示/来源: 键盘背光
游戏控制器
PlayStation 4 无线控制器
接下来,我们来介绍一些您可能不太熟悉的内容。索尼的 DualShock 4 是 PlayStation 4 游戏机的无线控制器。
DualShock 4 演示使用 WebHID 从 DualShock 4 接收原始输入报告,并提供一个高级 API 来访问控制器的陀螺仪、加速计、触控板、按钮和拇指杆输入。它还支持震动和设置控制器内 RGB LED 的颜色。
作者: TheBITLINK
演示: DualShock 4 演示(来源)
任天堂 Switch Joy-Con 控制器
将任天堂 Switch Joy-Con 控制器放在裤子口袋里,然后跳起来,即可玩 Chrome 恐龙 🦖 离线游戏。此演示由 Joy-Con WebHID提供支持,Joy-Con WebHID 是 任天堂 Switch Joy-Con 控制器的 WebHID 驱动程序。
作者: Thomas Steiner
演示: Chrome 恐龙游戏 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。