【うぇぶゆーえすびー】

WebUSB とは?

最終更新:
💡 Webページから、許可したUSB機器と通信する窓口

WebページのJavaScriptから、許可されたUSB機器と通信するブラウザAPI。利用には対応ブラウザや機器、セキュアな実行環境が必要。

📌 このページのポイント
新たな機器の許可を求める例 Webページ 利用者が操作 機器を選択 ボード 許可する USB機器 許可済みの機器は再取得できる HTTPSなどのセキュアな環境が必要 対応ブラウザ・OS・機器を確認 すべてのUSB機器を扱えるわけではない
requestDevice()による許可取得の例。許可済み機器の取得にはgetDevices()を使えます。
ひよこ ひよこ
ペンギン先生、WebUSBってなに?ブラウザでUSB使えるの?
ペンギン先生 ペンギン先生
そうだよ。WebページのJavaScriptから、利用者が許可したUSB機器と通信するためのAPIなんだ。ただし、USB機器なら何でも使えるという意味ではないよ。
ひよこ ひよこ
え、専用のソフトをインストールしなくてもいいの?
ペンギン先生 ペンギン先生
機器の設定や操作を専用アプリの代わりにWebページで提供できる場合があるよ。機器に合った通信処理をページ側に用意し、ブラウザやOSからその機器を扱える必要がある。OS側でドライバなどの準備が必要な場合もあるんだ。
ひよこ ひよこ
便利そうだけど、ちょっと怖くない?勝手にUSB機器を操作されそう。
ペンギン先生 ペンギン先生
新しい機器の許可を求めるrequestDevice()では、ボタンを押すなど利用者の操作をきっかけに機器選択画面を出すよ。一度許可した機器はgetDevices()で取得できるので、通信のたびに同じ画面が出るわけではない。許可する前に、ページと機器を確認することが大切だね。
ひよこ ひよこ
どんな場面で使えるの?
ペンギン先生 ペンギン先生
たとえば、WebUSB用に設定されたArduinoのボードと、Webページから通信する例があるよ。機器が持つ機能や通信手順に合わせて実装するんだ。USBで接続したという理由だけで、すべての機器の操作機能が使えるわけではないよ。
ひよこ ひよこ
全部のブラウザで使えるの?
ペンギン先生 ペンギン先生
対応は限られているよ。Chromeのような対応ブラウザでも、HTTPSなどのセキュアな環境が必要で、OSや機器の条件も関わる。ページの開発ではnavigator.usbが使えるかを確認し、利用環境で実際に試す必要があるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「WebUSB」って出てきたら「ブラウザから直接USB機器とやりとりできるAPI」と思えればだいたいOK!
📖 おまけ:英語の意味
「WebUSB API」 = ウェブユーエスビーAPI
💬 「Web」と「USB」を組み合わせた名前で、その名の通りWebページからUSBデバイスにアクセスするための仕組みだよ。

参考資料

← 用語集にもどる