WebHID
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
HID インターフェイスは、 HID デバイス への接続およびアタッチした HID デバイスのリストアップを行うメソッドと、HID デバイスの接続を扱うイベントハンドラーを提供します。
EventTarget HID
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
HID 実験的 | 89 | 89 | | | | |
connect_event 実験的 HID インターフェイスの connect イベントは、ユーザーエージェントが HID デバイスに接続した時発火します。 | 89 | 89 | | | | |
disconnect_event 実験的 HID インターフェイスの disconnect イベントは、ユーザーエージェントが HID デバイスを切断した時発火します。 | 89 | 89 | | | | |
getDevices 実験的 HID インターフェイスの getDevices() メソッドは、ユーザーがこれまでに HID.requestDevice の呼び出しに応じてアクセスを許可した接続中の HID デバイスのリストを取得します。 | 89 | 89 | | | | |
requestDevice 実験的 HID インターフェイスの requestDevice() メソッドは、HID デバイスへのアクセスを要求します。 | 89 | 89 | | | | |
worker_support 実験的 労働者で利用可能 | 131 | 131 | | | | |
| WebHID API の HIDConnectionEvent インターフェイスは、HID の接続イベントを表します。このイベント型は、Input レポートを受信した際に HID.connectevent や HID.disconnectevent に渡される型です。 | 89 | 89 | | | | |
device 実験的 HIDConnectionEvent インターフェイスの読み取り専用プロパティ device は、この接続イベントに関係する HIDDevice のインスタンスを返します。 | 89 | 89 | | | | |
| HIDConnectionEvent() コンストラクターは、新しい HIDConnectionEvent オブジェクトを生成します。通常は、イベントは Input レポートを受信した際に生成されるため、このコンストラクターは使用されません。 | 89 | 89 | | | | |
worker_support 実験的 労働者で利用可能 | 131 | 131 | | | | |
HIDDevice 実験的 WebHID API の HIDDevice インターフェイスは HID デバイスを表します。デバイスに関する情報にアクセスするためのプロパティと、接続を開いたり閉じたりするメソッド、そしてレポートの送受信を行うメソッドを提供します。 | 89 | 89 | | | | |
close 実験的 HIDDevice インターフェイスの close() メソッドは、HID デバイスとの接続を閉じます。 | 89 | 89 | | | | |
collections 実験的 HIDDevice インターフェイスの読み取り専用プロパティ collections は、レポート形式の配列を返します。 | 89 | 89 | | | | |
forget 実験的 HIDDevice インターフェイスの forget() メソッドは、HID デバイスとの接続を閉じ、デバイスを忘れます。 | 100 | 100 | | | | |
| HIDDevice インターフェイスの inputreport イベントは、HID デバイスから新しいレポートを受信した時に発火します。 | 89 | 89 | | | | |
open 実験的 HIDDevice の open() メソッドは、オペレーティングシステムに HID デバイスを開くことを要求します。 | 89 | 89 | | | | |
opened 実験的 HIDDevice インターフェイスの読み取り専用プロパティ opened は、HIDDevice への接続が開かれていてデータを転送する準備ができているとき true を返します。 | 89 | 89 | | | | |
productId 実験的 HIDDevice インターフェイスの読み取り専用プロパティ productId は、接続された HID デバイスのプロダクト ID を返します。 | 89 | 89 | | | | |
productName 実験的 HIDDevice インターフェイスの読み取り専用プロパティ productName は、接続された HID デバイスの製品名を返します。 | 89 | 89 | | | | |
| HIDDevice インターフェイスの receiveFeatureReport() メソッドは、HID レポートから Feature レポートを受信します。Feature レポートは、HID デバイスとアプリケーションが標準化されていない HID データを交換するための方法です。 | 89 | 89 | | | | |
| HIDDevice インターフェイスの sendFeatureReport() メソッドは、HID デバイスに Feature レポートを送信します。Feature レポートは、HID デバイスとアプリケーションが標準化されていない HID データを交換するための方法です。 | 89 | 89 | | | | |
sendReport 実験的 HIDDevice インターフェイスの sendReport() メソッドは、Output レポートを HID デバイスに送信します。 | 89 | 89 | | | | |
vendorId 実験的 HIDDevice インターフェイスの読み取り専用プロパティ vendorId は、接続された HID デバイスのベンダー ID を返します。これにより、デバイスの製造元を識別します。 | 89 | 89 | | | | |
worker_support 実験的 労働者で利用可能 | 131 | 131 | | | | |
| WebHID API の HIDInputReportEvent インターフェイスは、割り当てられた HID デバイスのいずれかから Input レポートを受信した時、HIDDevice.inputreport_event に渡されます。 | 89 | 89 | | | | |
data 実験的 HIDInputReportEvent インターフェイスの data プロパティは、Input レポートから読み取ったデータが入った DataView を返します。HID インターフェイスがレポート ID を用いている場合、reportId は含まれません。 | 89 | 89 | | | | |
device 実験的 HIDInputReportEvent インターフェイスの device プロパティは、この Input レポートを送信した HID インターフェイスを表す HIDDevice のインスタンスを返します。 | 89 | 89 | | | | |
reportId 実験的 HIDInputReportEvent インターフェイスの reportId プロパティは、レポートを識別する 1 バイトの接頭辞、もしくは HID インターフェイスがレポート ID を用いていない場合 0 を返します。 | 89 | 89 | | | | |
worker_support 実験的 労働者で利用可能 | 131 | 131 | | | | |
hid 実験的 Navigator.hid は読み取り専用のプロパティで、HID オブジェクトを返します。このオブジェクトは、HID デバイスへの接続およびアタッチした HID デバイスのリストアップを行うメソッドと、HID デバイスの接続を扱うイベントハンドラーを提供します。 | 89 | 89 | | | | |
hid 実験的 WorkerNavigator.hid 読み取り専用プロパティは、HID デバイス接続にアクセスするためのメソッドと、ユーザー エージェントがデバイスに接続または切断するときに発生するイベントを提供する HID オブジェクトを返します。 | 131 | 131 | | | | |
| その他 | ||||||
html.elements.iframe.allow.hid 実験的 | 89 | 89 | | | 89 | |
| HTTP の Permissions-Policy ヘッダーの hid ディレクティブは、現在の文書が WebHID API を使用して、代替キーボードやゲームパッドなどの一般的ではない、あるいは珍しいヒューマンインターフェイス機器に接続することを許可するかどうかをコントロールします。 | 89 | 89 | | | | |
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
- このブラウザでは部分的にしか実装されていません
- 専用ワーカーと WebExtension サービスワーカーであり、共有ワーカーと非 WebExtension サービスワーカーではない。
- WebExtension サービスワーカーのみ。
- このバージョンで機能が削除されました (131)
基本構文
const [device] = await navigator.hid.requestDevice({
filters: [{ vendorId: 0x1234 }]
});
await device.open();
device.addEventListener('inputreport', (e) => {
console.log('Report:', new Uint8Array(e.data.buffer));
}); 実務での使いどころ
-
WebHID の活用
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
アクセシビリティ
- スクリーンリーダーでの読み上げを確認すること。