HIDInputReportEvent

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The HIDInputReportEvent interface of the WebHID API is passed to HIDDevice.inputreport_event when an input report is received from any associated HID device.

Event HIDInputReportEvent

Properties

This interface also inherits properties from Event.

HIDInputReportEvent.dataRead only

A DataView containing the data from the input report, excluding the reportId if the HID interface uses report IDs.

HIDInputReportEvent.deviceRead only

The HIDDevice instance 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.

Methods

This interface inherits methods from its parent, Event.

Examples

The following example demonstrates listening for an inputReport 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-hidinputreportevent

Browser compatibility

BCD tables only load in the browser