HIDInputReportEvent
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
WebHID API
の HIDInputReportEvent
インターフェイスは、割り当てられた HID デバイスのいずれかから Input レポートを受信した時、HIDDevice.inputreport_event
に渡されます。
インスタンスプロパティ
このインターフェイスには、Event
から継承したプロパティもあります。
HIDInputReportEvent.data
読取専用 Experimental-
Input レポートから読み取ったデータが入った
DataView
です。HID インターフェイスがレポート ID を用いている場合、reportId
は含まれません。 HIDInputReportEvent.device
読取専用 Experimental-
この Input レポートを送信した HID インターフェイスを表す
HIDDevice
のインスタンスです。 HIDInputReportEvent.reportId
読取専用 Experimental-
レポートを識別する 1 バイトの接頭辞、もしくは HID インターフェイスがレポート ID を用いていない場合 0 です。
インスタンスメソッド
このインターフェイスは、親の Event
からメソッドを継承しています。
例
この例では、アプリケーションが Joy-Con Right デバイスでどのボタンが押されたかを検出するために inputReport
を監視します。記事 Connecting to uncommon HID devices で、他の例や動くデモを見ることができます。
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 |
ブラウザーの互換性
BCD tables only load in the browser