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

通过您的应用连接到不常见的设备。

Joe Medley
Joe Medley
马特·雷诺兹
Matt Reynolds

WebHID API 是什么?

许多人机接口设备 (HID) 太新、太旧或不常见,无法由系统的设备驱动程序访问。为解决此问题,WebHID API 提供了一种在 JavaScript 中实现设备专用逻辑的方法。

WebHID API 的建议用例

HID 从人类那里获取输入或向人类提供输出。设备示例包括键盘、指控设备(鼠标、触摸屏等)和游戏手柄。借助 HID 协议,可以使用操作系统驱动程序在桌面设备上访问这些设备。Web 平台通过依赖这些驱动程序来支持 HID。

当涉及到游戏手柄支持时,无法访问不常见的 HID 设备尤为痛苦。专为 PC 设计的游戏手柄通常将 HID 用于游戏手柄输入(按钮、操纵杆、触发器)和输出(LED、振动)。但是,游戏手柄输入和输出没有完全标准化,网络浏览器通常需要特定设备的自定义逻辑。这种做法不可持续,导致对旧款和不常见设备的长尾提供支持欠佳。它还会导致浏览器依赖于特定设备的行为中存在的怪异现象。

演示,演示,演示

如果您想了解这些示例的工作原理,可以前往 GitHub 获取所有示例的源代码。解释器中有一个准系统代码示例

MacBook Pro 键盘背光

尝试这些演示版的最大障碍是无法访问设备。幸运的是,如果您使用的是带有 TouchBar 的 MacBook Pro,则无需购买任何东西。通过这个演示,您可以直接在笔记本电脑上使用 API。此外,还介绍了如何使用 WebHID 解锁内置设备(而不仅仅是外围设备)的功能。

作者:FWeinb
演示/来源键盘背光

游戏控制器

PlayStation 4 无线控制器

接下来是你可能拥有的东西。索尼的 DualShock 4 是一款适用于 PlayStation 4 游戏机的无线控制器。

DualShock 4 演示版使用 WebHID 从 DualShock 4 接收原始输入报告,并提供了一个高级 API 来访问控制器的陀螺仪、加速度计、触控板、按钮和拇指杆输入。此外,它还支持 Rumble 以及设置控制器内装有 RGB LED 的颜色。

作者:TheBITLINK
演示DualShock 4 演示来源

任天堂 Switch Joy-Con 控制器

玩转 Chrome 恐龙 🦖? 离线游戏,把任天堂 Switch Joy-Con 控制器放在裤子口袋里实际跳跃。此演示由 Joy-Con WebHID 提供支持,Joy-Con WebHID 是任天堂 Switch Joy-Con 控制器的 WebHID 驱动程序。

作者Thomas Steiner
演示Chrome Dino WebHID演示源代码驱动程序源代码

《The BlinkStick Stick》

BlinkStick Strip 是一款符合 HID 标准的灯条,配有 8 个 RGB LED。该演示允许用户从多种闪烁模式中进行选择,包括追逐、闪烁和拉尔森扫描器(也称为 Cylon)。

作者:Robat Williams
演示blinkstick-strip来源

此演示版是做什么的?(请稍候。)它闪烁。实际上,有三个演示 使用闪烁(1) USB 通知指示灯

blink(1) 很简单,而且记录详尽,因此非常适合开始使用 HID。

作者:Tod E. Kurt
演示blink(1)来源

致谢

感谢 Pete LePageKayce Basques 审核本文。

照片由 Ugur Akdemir 拍摄,选自 Unsplash 网站