HIDInputReportEvent

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全上下文: 此项功能仅在一些支持的浏览器安全上下文(HTTPS)中可用。

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

备注: 此特性在 Web Worker(不包括共享 Web Worker)中可用。

WebHID APIHIDInputReportEvent 接口会在任何关联的 HID 设备接收到输入报告时,被传递给 HIDDeviceinputreport 事件。

Event HIDInputReportEvent

实例属性

此接口从其父接口 Event 继承属性。

HIDInputReportEvent.data 只读 实验性

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

HIDInputReportEvent.device 只读 实验性

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

HIDInputReportEvent.reportId 只读 实验性

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

实例方法

此接口从其父接口 Event 继承方法。

示例

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

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

  // 处理 Joy-Con 右手柄设备和特定的报告 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(`用户按下了 ${someButtons[value]}`);
});

规范

Specification
WebHID API
# dom-hidinputreportevent

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
HIDInputReportEvent
Experimental
data
Experimental
device
Experimental
reportId
Experimental
Available in workers
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
Has more compatibility info.