HID 设备:inputreport 事件
当从 HID 设备接收到新报告时,HIDDevice
接口的inputreport
事件会被触发。
语法
在诸如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;
// 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 |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。