HIDDevice: inputreport event
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
Note: This feature is available in Web Workers, except for Shared Web Workers.
The inputreport event of the HIDDevice interface fires when a new report is received from the HID device.
Syntax
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("inputreport", (event) => { })
oninputreport = (event) => { }
Event type
An HIDInputReportEvent. Inherits from Event.
Event properties
This interface also inherits properties from Event.
HIDInputReportEvent.dataRead only-
A
DataViewcontaining the data from the input report, excluding thereportIdif the HID interface uses report IDs. HIDInputReportEvent.deviceRead only-
The
HIDDeviceinstance that represents the HID interface that sent the input report. HIDInputReportEvent.reportIdRead only-
The one-byte identification prefix for this report, or 0 if the HID interface does not use report IDs.
Example
The following example demonstrates listening for an inputreport event that will allow the application to detect which button is pressed on a Joy-Con Right device. You can see more examples, and live demos in the article Connecting to uncommon HID devices.
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]}.`);
});
Specifications
| Specification |
|---|
| WebHID API> # dom-hiddevice-oninputreport> |
Browser compatibility
Loading…