HIDDevice: inputreport イベント
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
HIDDevice
インターフェイスの inputreport
イベントは、HID デバイスから新しいレポートを受信した時に発火します。
構文
addEventListener()
のようなメソッドでイベント名を使うか、イベントハンドラープロパティを設定します。
addEventListener("inputreport", (event) => {});
oninputreport = (event) => {};
イベント型
HIDInputReportEvent
です。Event
を継承しています。
イベントプロパティ
このインターフェイスは、Event
から継承したプロパティも持ちます。
HIDInputReportEvent.data
読取専用-
Input レポートから読み取ったデータが入った
DataView
です。HID インターフェイスがレポート ID を用いている場合、reportId
は含まれません。 HIDInputReportEvent.device
読取専用-
この Input レポートを送信した HID インターフェイスを表す
HIDDevice
のインスタンスです。 HIDInputReportEvent.reportId
読取専用-
レポートを識別する 1 バイトの接頭辞、もしくは HID インターフェイスがレポート ID を用いていない場合 0 です。
例
この例では、アプリケーションが 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-hiddevice-oninputreport |
ブラウザーの互換性
BCD tables only load in the browser