网络上的人机界面设备:几个简短的示例

从应用连接到不常见的设备。

Joe Medley
Joe Medley
Matt Reynolds
Matt Reynolds

什么是 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 LePageKayce Basques