Web Bluetooth
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
Bluetooth は Web Bluetooth API のインターフェイスで、指定のオプションに合致する BluetoothDevice オブジェクトで解決する Promise を返します。
EventTarget Bluetooth
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
Bluetooth 実験的 | 70 | 79 | | | 56 | |
getAvailability 実験的 getAvailability() は Bluetooth インターフェイスのメソッドで、(端末に Bluetooth アダプターがあるために)ユーザーエージェントが Bluetooth に対応する場合は実質的に true を返し、そうでない場合は false を返します。 | 78 | 79 | | | 78 | |
getDevices 実験的 getDevices() は Bluetooth インターフェイスのメソッドで、このオリジンがアクセスを許可されている Bluetooth 機器を含む配列を返します。圏外だったり電源が切られていたりするものを含みます。 | 85 | 85 | | | 85 | |
requestDevice 実験的 Bluetooth.requestDevice() は Bluetooth インターフェイスのメソッドで、指定のオプションに合致する BluetoothDevice オブジェクトで履行される Promise を返します。 選択用の UI が無い場合は、このメソッドは基準に合致する最初の機器を返します。 | 56 | 79 | | | 56 | |
requestDevice (options exclusionFilters parameter) 実験的 options.exclusionFilters`パラメータ | 114 | 114 | | | 114 | |
requestDevice (options filter manufacturerData parameter) 実験的 options.filter.manufacturerData`パラメータ | 92 | 92 | | | 92 | |
| Web Bluetooth API の BluetoothCharacteristicProperties インターフェイスは、指定の BluetoothRemoteGATTCharacteristic で有効な操作を提供します。 | 70 | 79 | | | 56 | |
| BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ authenticatedSignedWrites は、キャラクタリスティックの値への署名付き書き込みが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
broadcast 実験的 BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ broadcast は、Server Characteristic Configuration Descriptor によりキャラクタリスティックの値のブロードキャストが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
indicate 実験的 BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ indicate は、キャラクタリスティックの値のアクノリッジメントありのインジケーションが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
notify 実験的 BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ notify は、キャラクタリスティックの値のアクノリッジメントなしのノーティフィケーションが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
read 実験的 BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ read は、キャラクタリスティックの値の読み取りが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
reliableWrite 実験的 BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ reliableWrite は、キャラクタリスティックへの信頼性のある書き込みが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
| BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ writableAuxiliaries は、キャラクタリスティックディスクリプターへの信頼性のある書き込みが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
write 実験的 BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ write は、キャラクタリスティックへのレスポンスありの書き込みが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
| BluetoothCharacteristicProperties インターフェイスの読み取り専用プロパティ writeWithoutResponse は、キャラクタリスティックへのレスポンスなしの書き込みが許可されているならば true となる boolean 値を返します。 | 56 | 79 | | | 56 | |
BluetoothDevice 実験的 Web Bluetooth API のBluetoothDevice インターフェイスは、特定のスクリプト実行環境下における Bluetooth デバイスを表します。 | 70 | 79 | | | 56 | |
gatt 実験的 読み取り専用プロパティ BluetoothDevice.gatt は、デバイスの BluetoothRemoteGATTServer への参照を返します。 | 56 | 79 | | | 56 | |
gattserverdisconnected_event 実験的 gattserverdisconnected`イベント | 56 | 79 | | | 56 | |
id 実験的 読み取り専用プロパティ BluetoothDevice.id は、デバイスを一意に識別する文字列を返します。 | 56 | 79 | | | 56 | |
name 実験的 読み取り専用プロパティ BluetoothDevice.name は、デバイスの人間にわかりやすい名前を表す文字列を返します。 | 56 | 79 | | | 56 | |
| Web Bluetooth API の BluetoothRemoteGattCharacteristic インターフェイスは、GATT キャラクタリスティックを表します。これは、周辺機器のサービスに関する詳細情報を提供する基本的なデータ要素です。 | 70 | 79 | | | 56 | |
characteristicvaluechanged_event 実験的 characteristicvaluechanged`イベント | 56 | 79 | | | 56 | |
getDescriptor 実験的 BluetoothRemoteGATTCharacteristic.getDescriptor() メソッドは、指定のディスクリプター UUID に対応する最初の BluetoothRemoteGATTDescriptor で解決する Promise を返します。 | 57 | 79 | | | 57 | |
getDescriptors 実験的 BluetoothRemoteGATTCharacteristic.getDescriptors() メソッドは、指定のディスクリプター UUID に対応するすべての BluetoothRemoteGATTDescriptor オブジェクトの Array で解決する Promise を返します。 | 57 | 79 | | | 57 | |
properties 実験的 読み取り専用プロパティ BluetoothRemoteGATTCharacteristic.properties は、このキャラクタリスティックのプロパティが格納された BluetoothCharacteristicProperties のインスタンスを返します。 | 56 | 79 | | | 56 | |
readValue 実験的 BluetoothRemoteGATTCharacteristic.readValue() メソッドは、利用可能で対応していれば、value プロパティの複製が格納された DataView で解決する Promise を返します。そうでない場合は、エラーを投げます。 | 56 | 79 | | | 56 | |
service 実験的 読み取り専用プロパティ BluetoothRemoteGATTCharacteristic.service は、このキャラクタリスティックが属する BluetoothRemoteGATTService を返します。 | 56 | 79 | | | 56 | |
| BluetoothRemoteGATTCharacteristic.startNotifications() メソッドは、それに関する活動中のノーティフィケーションが存在するようになったら BluetoothRemoteGATTCharacteristic のインスタンスで解決する Promise を返します。 | 56 | 79 | | | 56 | |
| BluetoothRemoteGATTCharacteristic.stopNotifications() メソッドは、それに関する活動中のノーティフィケーションが存在しなくなったら BluetoothRemoteGATTCharacteristic のインスタンスで解決する Promise を返します。 | 56 | 79 | | | 56 | |
uuid 実験的 読み取り専用プロパティ BluetoothRemoteGATTCharacteristic.uuid は、このキャラクタリスティックの UUID を表す文字列を返します。たとえば、Heart Rate Measurement characteristic は '00002a37-0000-1000-8000-00805f9b34fb' です。 | 56 | 79 | | | 56 | |
value 実験的 読み取り専用プロパティ BluetoothRemoteGATTCharacteristic.value は、現在キャッシュされているキャラクタリスティックの値を返します。この値は、キャラクタリスティックの値が読まれるか、ノーティフィケーションやインディケーションによって更新されると更新されます。 | 56 | 79 | | | 56 | |
| BluetoothRemoteGATTCharacteristic.writeValueWithoutResponse() メソッドは、BluetoothRemoteGATTCharacteristic オブジェクトの value プロパティを渡された ArrayBuffer に格納されたバイト列に設定し、WriteCharacteristicValue(this=this, value=value, response="never") を呼び出し、結果の Promise を返します。 | 85 | 85 | | | 85 | |
| BluetoothRemoteGATTCharacteristic.writeValueWithResponse() メソッドは、BluetoothRemoteGATTCharacteristic オブジェクトの value プロパティを渡された ArrayBuffer に格納されたバイト列に設定し、WriteCharacteristicValue(this=this, value=value, response="required") を呼び出し、結果の Promise を返します。 | 85 | 85 | | | 85 | |
| Web Bluetooth API の BluetoothRemoteGATTDescriptor は、GATT ディスクリプターを提供します。これは、キャラクタリスティックの値に関する詳細情報を提供します。 | 70 | 79 | | | 57 | |
characteristic 実験的 読み取り専用プロパティ BluetoothRemoteGATTDescriptor.characteristic は、このディスクリプターが属する BluetoothRemoteGATTCharacteristic を返します。 | 57 | 79 | | | 57 | |
readValue 実験的 BluetoothRemoteGATTDescriptor.readValue() メソッドは、利用可能で対応していれば value プロパティの複製が格納された ArrayBuffer で解決する Promise を返します。そうでない場合、エラーを投げます。 | 57 | 79 | | | 57 | |
uuid 実験的 読み取り専用プロパティ BluetoothRemoteGATTDescriptor.uuid は、このキャラクタリスティックディスクリプターの UUID を返します。 たとえば、theClient Characteristic Configuration descriptor は「00002902-0000-1000-8000-00805f9b34fb」です。 | 57 | 79 | | | 57 | |
value 実験的 読み取り専用プロパティ BluetoothRemoteGATTDescriptor.value は、現在キャッシュされているディスクリプターの値を返します。この値はディスクリプターの値が読まれると更新されます。 | 57 | 79 | | | 57 | |
writeValue 実験的 BluetoothRemoteGATTDescriptor.writeValue() メソッドは、value プロパティを ArrayBuffer に格納されたバイト列に設定し、Promise を返します。 | 57 | 79 | | | 57 | |
| Web Bluetooth API の BluetoothRemoteGATTServer インターフェイスは、リモートデバイス上の GATT サーバーを表します。 | 70 | 79 | | | 56 | |
connect 実験的 BluetoothRemoteGATTServer.connect() メソッドは、このスクリプト実行環境を this.device に接続させます。 | 56 | 79 | | | 56 | |
connected 実験的 読み取り専用プロパティ BluetoothRemoteGATTServer.connected は、このスクリプト実行環境が this.device に接続されている間 true を返す論理値です。ユーザーエージェントが物理的に接続されていても false になる可能性があります。 | 56 | 79 | | | 56 | |
device 実験的 読み取り専用プロパティ BluetoothRemoteGATTServer.device は、このサーバーを動かしている BluetoothDevice への参照を返します。 | 56 | 79 | | | 56 | |
disconnect 実験的 BluetoothRemoteGATTServer.disconnect() メソッドは、このスクリプト実行環境を this.device から切断させます。 | 56 | 79 | | | 56 | |
| BluetoothRemoteGATTServer.getPrimaryService() メソッドは、Bluetooth デバイスが提供している指定の Bluetooth サービス UUID に対応するプライマリー BluetoothRemoteGATTService で解決するプロミスを返します。 | 56 | 79 | | | 56 | |
| BluetoothRemoteGATTServer.getPrimaryServices() メソッドは、Bluetooth デバイスが提供している指定の BluetoothServiceUUID に対応するプライマリー BluetoothRemoteGATTService オブジェクトのリストで解決するプロミスを返します。 | 56 | 79 | | | 56 | |
| Web Bluetooth API の BluetoothRemoteGATTService インターフェイスは、GATT サーバーにより提供されるサービスを表します。デバイス、参照されるサービス、このサービスのキャラクタリスティックのリストも含みます。 | 70 | 79 | | | 56 | |
device 実験的 読み取り専用プロパティ BluetoothGATTService.device は、BluetoothDevice のインスタンスを通じて、この Bluetooth デバイスの情報を返します。 | 56 | 79 | | | 56 | |
| BluetoothGATTService.getCharacteristic() メソッドは、指定の universally unique identifier (UUID) に対応する BluetoothRemoteGATTCharacteristic のインスタンスで解決する Promise を返します。 | 56 | 79 | | | 56 | |
| BluetoothGATTService.getCharacteristics() メソッドは、指定の universally unique identifier (UUID) に対応する BluetoothRemoteGATTCharacteristic のインスタンスのリストで解決する Promise を返します。 | 56 | 79 | | | 56 | |
isPrimary 実験的 読み取り専用プロパティ BluetoothGATTService.isPrimary は、これがプライマリーサービスかを表す論理値を返します。プライマリーサービスでなければ、セカンダリーサービスです。 | 56 | 79 | | | 56 | |
uuid 実験的 読み取り専用プロパティ BluetoothGATTService.uuid は、このサービスの UUID を表す文字列を返します。 | 56 | 79 | | | 56 | |
| Web Bluetooth API の BluetoothUUID インターフェイスは、Bluetooth SIG が管理しているレジストリーから Universally Unique Identifier (UUID) の値を名前で検索する方法を提供します。 | 70 | 79 | | | 56 | |
| BluetoothUUID インターフェイスの静的メソッド canonicalUUID() は、16 ビットまたは 32 ビットの UUID エイリアスを受け取り、128 ビットの UUID を返します。 | 56 | 79 | | | 56 | |
| BluetoothUUID インターフェイスの静的メソッド getCharacteristic() は、名前、もしくは 16 ビットまたは 32 ビットの UUID エイリアスを受け取り、登録されたキャラクタリスティックを表す 128 ビットの UUID を返します。 | 56 | 79 | | | 56 | |
| BluetoothUUID インターフェイスの静的メソッド getDescriptor() は、名前、もしくは 16 ビットまたは 32 ビットの UUID エイリアスを受け取り、登録されたディスクリプターを表す 128 ビットの UUID を返します。 | 56 | 79 | | | 56 | |
| BluetoothUUID インターフェイスの静的メソッド getService() は、名前、もしくは 16 ビットまたは 32 ビットの UUID エイリアスを受け取り、登録されたサービスを表す 128 ビットの UUID を返します。 | 56 | 79 | | | 56 | |
bluetooth 実験的 bluetooth は Navigator インターフェイスの読み取り専用プロパティで、現在の文書の Bluetooth オブジェクトを返し、 Web Bluetooth API の機能へアクセスできるようにします。 | 70 | 79 | | | 56 | |
| その他 | ||||||
html.elements.iframe.allow.bluetooth 実験的 | 104 | 104 | | | 104 | |
| HTTP の Permissions-Policy ヘッダーにおける bluetooth ディレクティブは、現在の文書で Web Bluetooth API の使用を許可するかどうかを制御します。 | 104 | 104 | | | 104 | |
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
- macOSのみ対応。
- このバージョンで機能が削除されました (70)
- このブラウザでは部分的にしか実装されていません
- Linuxのサポートはデフォルトでは有効になっていない。
基本構文
const device = await navigator.bluetooth.requestDevice({
filters: [{ services: ['heart_rate'] }]
});
const server = await device.gatt.connect();
const service = await server.getPrimaryService('heart_rate');
const char = await service.getCharacteristic('heart_rate_measurement'); 実務での使いどころ
-
Web Bluetooth の活用
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
注意点
- 一部のブラウザでのみ対応。使用前にブラウザサポートを確認すること。
アクセシビリティ
- スクリーンリーダーでの読み上げを確認すること。