HIDDevice:inputreport 事件

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

注意:此功能在 Web Workers 中可用,但 共享 Web Workers 除外。

inputreport 事件是 HIDDevice 接口的一部分,当从 HID 设备接收到新报告时触发。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("inputreport", (event) => { })

oninputreport = (event) => { }

事件类型

一个 HIDInputReportEvent。继承自 Event

Event HIDInputReportEvent

事件属性

此接口还继承了 Event 的属性。

HIDInputReportEvent.data 只读

一个 DataView,包含来自输入报告的数据,如果 HID 接口使用报告 ID,则不包含 reportId

HIDInputReportEvent.device 只读

代表发送输入报告的 HID 接口的 HIDDevice 实例。

HIDInputReportEvent.reportId 只读

此报告的一字节标识前缀,如果 HID 接口不使用报告 ID,则为 0。

示例

以下示例演示了如何监听 inputreport 事件,该事件允许应用程序检测 Joy-Con Right 设备上按下哪个按钮。您可以在文章 连接到不常见的 HID 设备 中找到更多示例和实时演示。

js
device.addEventListener("inputreport", (event) => {
  const { data, device, reportId } = event;

  // Handle only the Joy-Con Right device and a specific report ID.
  if (device.productId !== 0x2007 && reportId !== 0x3f) return;

  const value = data.getUint8(0);
  if (value === 0) return;

  const someButtons = { 1: "A", 2: "X", 4: "B", 8: "Y" };
  console.log(`User pressed button ${someButtons[value]}.`);
});

规范

规范
WebHID API
# dom-hiddevice-oninputreport

浏览器兼容性