HIDDevice:inputreport 事件
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
备注: 此特性在 Web Worker(不包括共享 Web Worker)中可用。
HIDDevice
接口的 inputreport
事件在从 HID 设备接收新报告时会触发。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理器属性。
js
addEventListener("inputreport", (event) => {});
oninputreport = (event) => {};
事件类型
一个 HIDInputReportEvent
。继承自 Event
。
事件属性
此接口也从其父接口 Event
继承属性。
HIDInputReportEvent.data
只读-
一个
DataView
,包含输入报告中的数据,如果 HID 接口使用报告 ID,则不包括reportId
。 HIDInputReportEvent.device
只读-
表示发送输入报告的 HID 接口的
HIDDevice
实例。 HIDInputReportEvent.reportId
只读-
此报告的单字节标识前缀,如果 HID 接口不使用报告 ID,则为
0
。
示例
以下示例演示如何监听 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-hiddevice-oninputreport |
浏览器兼容性
BCD tables only load in the browser