Chrome ブラウザで Web Bluetooth API を試してみる
Web Bluetooth API というモノがある。Bluetooth が内蔵されたノート PC なんかで、Chrome ブラウザを使って Bluetooth デバイスとの接続ができるらしい。コレを使えば「Cordova-Plugin-BluetoothLE」のような Cordova プラグインを使ってアプリ化せずとも、ウェブアプリとして Bluetooth デバイスを扱えそうだ。
ということで今回は、この Web Bluetooth API の触りだけ試してみた。
目次
Web Bluetooth API を有効にする
本校執筆時点の Chrome ブラウザのデフォルトでは、Web Bluetooth API が無効化されているので、コレを有効にする。
Chrome ブラウザを開いたら次の URL にアクセスする。
chrome://flags/#enable-experimental-web-platform-features
すると「Experimental Web Platform features」という設定項目にフォーカスが当たっているので、コレを「Enabled」にしてブラウザを再起動する。
必要な事前準備はコレだけ。
開発者コンソールで試してみる
機能を有効にして Chrome を再起動したら、F12
キーなどで開発者ツールを開く。そして「Console」タブに移動したら、次のように入力する。
navigator.bluetooth
機能が正しく有効にできていれば、Bluetooth
オブジェクトが返ってくるはずだ。もし undefined
が返ってきた場合は、前述の有効化手順がうまく出来ていない可能性がある。
そしたら、次のようなワンライナーを叩いてみる。
navigator.bluetooth.requestDevice({ acceptAllDevices: true })
コレで、専用の「Chooser UI」、デバイス一覧のダイアログが開くはずだ。PC 周辺の Bluetooth デバイスをスキャンしていて、モノによっては製品名などが見えると思われる。
requestDevice()
によって、ペアリングを開始できる。
navigator.bluetooth.requestLEScan({ acceptAllAdvertisements: true })
コチラは、BLE (Bluetooth Low Energy) のアドバタイジングが取得できる様子。MacOS の Chrome では何やら情報が取れたが、ThinkPad X250 にインストールした Ubuntu 上の Chrome だと特に情報が取れなかった。
以上
いずれのメソッドも Promise 形式なので、ペアリング後に続けてコネクションを張ったりして Bluetooth 機器を操作したりできる。
ブラウザオンリーで Bluetooth 操作ができるのは面白そうだ。
- Web Bluetooth API で BLE(Chrome と micro:bit をつなぐ) - Qiita
- Web Bluetooth Scanning
- scanで Hello, BLE
- bluejelly/scan.html at master · electricbaka/bluejelly · GitHub
- bluetooth lowenergy - BLE Advertisement scan in javascript - Stack Overflow
- web-bluetooth/implementation-status.md at master · WebBluetoothCG/web-bluetooth · GitHub