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.

js
addEventListener("inputreport", (event) => { })

oninputreport = (event) => { }

Event type

An HIDInputReportEvent. Inherits from Event.

Event HIDInputReportEvent

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.

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]}.`);
});

Specifications

Specification
WebHID API
# dom-hiddevice-oninputreport

Browser compatibility