HIDDevice
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
WebHID API
の HIDDevice
インターフェイスは HID デバイスを表します。デバイスに関する情報にアクセスするためのプロパティと、接続を開いたり閉じたりするメソッド、そしてレポートの送受信を行うメソッドを提供します。
インスタンスプロパティ
このインターフェイスには、EventTarget
から継承したプロパティもあります。
HIDDevice.opened
読取専用 Experimental-
boolean
を返します。このデバイスとの接続が開かれているときtrue
になります。 HIDDevice.vendorId
読取専用 Experimental-
この HID デバイスのベンダー ID を返します。
HIDDevice.productId
読取専用 Experimental-
この HID デバイスのプロダクト ID を返します。
HIDDevice.productName
読取専用 Experimental-
この HID デバイスの製品名の文字列を返します。
HIDDevice.collections
読取専用 Experimental-
この HID デバイスのレポート形式の配列を返します。
イベント
inputreport
Experimental-
レポートがデバイスから送られてきた時、発火します。
インスタンスメソッド
このインターフェイスには、EventTarget
から継承したメソッドもあります。
HIDDevice.open()
Experimental-
この HID デバイスとの接続を開きます。接続に成功したら解決する
Promise
を返します。 HIDDevice.close()
Experimental-
この HID デバイスとの接続を閉じます。操作が完了したら解決する
Promise
を返します。 HIDDevice.forget()
Experimental-
この HID デバイスとの接続を閉じ、アクセスの許可をリセットします。操作が完了したら解決する
Promise
を返します。 HIDDevice.sendReport()
Experimental-
この HID デバイスに Output レポートを送信します。操作が完了したら解決する
Promise
を返します。 HIDDevice.sendFeatureReport()
Experimental-
この HID デバイスに Feature レポートを送信します。操作が完了したら解決する
Promise
を返します。 HIDDevice.receiveFeatureReport()
Experimental-
この HID デバイスから Feature レポートを、
DataView
で解決するPromise
として受信します。これにより、メッセージの内容に型を用いてアクセスできます。
例
この例では、アプリケーションが Joy-Con Right デバイスでどのボタンが押されたかを検出するために inputReport
イベントを監視する方法を示します。
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]} を押しました。`);
});
この例では、デバイスを点滅させるために sendFeatureReport
を使用します。
const reportId = 1;
for (let i = 0; i < 10; i++) {
// 消灯させます
await device.sendFeatureReport(reportId, Uint32Array.from([0, 0]));
await waitFor(100);
// 点灯させます
await device.sendFeatureReport(reportId, Uint32Array.from([512, 0]));
await waitFor(100);
}
記事 Connecting to uncommon HID devices で他の例や動くデモを見ることができます。
仕様書
Specification |
---|
WebHID API # dom-hiddevice |
ブラウザーの互換性
BCD tables only load in the browser