このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

HIDInputReportEvent

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

WebHID APIHIDInputReportEvent インターフェイスは、割り当てられた HID デバイスのいずれかから Input レポートを受信した時、HIDDevice.inputreport_event に渡されます。

Event HIDInputReportEvent

インスタンスプロパティ

このインターフェイスには、Event から継承したプロパティもあります。

HIDInputReportEvent.data 読取専用

Input レポートから読み取ったデータが入った DataView です。HID インターフェイスがレポート ID を用いている場合、reportId は含まれません。

HIDInputReportEvent.device 読取専用

この Input レポートを送信した HID インターフェイスを表す HIDDevice のインスタンスです。

HIDInputReportEvent.reportId 読取専用

レポートを識別する 1 バイトの接頭辞、もしくは HID インターフェイスがレポート ID を用いていない場合 0 です。

インスタンスメソッド

このインターフェイスは、親の Event からメソッドを継承しています。

この例では、アプリケーションが Joy-Con Right デバイスでどのボタンが押されたかを検出するために inputReport を監視します。記事 Connecting to uncommon HID devices で、他の例や動くデモを見ることができます。

js
device.addEventListener("inputreport", (event) => {
  const { data, device, reportId } = event;

  // Joy-Con Right デバイスで、かつ特定のレポート 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-hidinputreportevent

ブラウザーの互換性