Bluetooth: requestDevice() メソッド
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
Bluetooth
インターフェイスの Bluetooth.requestDevice()
メソッドは、指定のオプションに合致する BluetoothDevice
オブジェクトで解決する Promise
を返します。選択用の UI が無い場合は、このメソッドは基準に合致する最初のデバイスを返します。
構文
js
requestDevice()
requestDevice(options)
引数
options
省略可-
デバイスの要求に関するオプションを設定するオブジェクトです。以下のオプションが利用可能です。
filters[]
BluetoothScanFilters
の配列です。このフィルタは、BluetoothServiceUUID
の配列、name
パラメーター、namePrefix
パラメーターからなります。
optionalServices[]
- :
BluetoothServiceUUID
の配列です。
- :
acceptAllDevices
- : 要求を出しているスクリプトがすべての Bluetooth デバイスを受け入れるかを表す
boolean
値です。デフォルトはfalse
です。
- : 要求を出しているスクリプトがすべての Bluetooth デバイスを受け入れるかを表す
返値
BluetoothDevice
オブジェクトで解決する Promise
を返します。
例外
TypeError
-
指定された
options
が意味をなさないとき投げられます。 たとえば、options.filters
が存在して、かつoptions.acceptAllDevices
がtrue
に設定されている場合や、options.filters
が存在せず、かつoptions.acceptAllDevices
がfalse
に設定されている場合に投げられます。options.filters
が[]
に設定されている場合も投げられます。 NotFoundError
DOMException
-
指定のオプションに合致する Bluetooth デバイスが存在しないとき投げられます。
SecurityError
DOMException
-
安全でないオリジンで呼び出されたときなど、現在のコンテキストでセキュリティの懸念によりこの操作が許可されないとき投げられます。
例
js
// 以下のアドバタイズをしているデバイスにマッチする検索オプションを使用します。
// ・標準の心拍数サービス
// ・16 ビットのサービス ID が 0x1802 と 0x1803
// ・プロプライエタリーの 128 ビット UUID c48e6067-5295-48d3-8d5c-0395f61792b1 を持つサービス
// ・名前 "ExampleName" を持つデバイス
// ・名前が "Prefix" で始まるデバイス
//
// そして、デバイスが該当のサービスをアドバタイズしていない場合でも、
// デバイスに存在すれば、バッテリーサービスへのアクセスを有効化します。
let options = {
filters: [
{ services: ["heart_rate"] },
{ services: [0x1802, 0x1803] },
{ services: ["c48e6067-5295-48d3-8d5c-0395f61792b1"] },
{ name: "ExampleName" },
{ namePrefix: "Prefix" },
],
optionalServices: ["battery_service"],
};
navigator.bluetooth
.requestDevice(options)
.then((device) => {
console.log(`名前: ${device.name}`);
// デバイスに何かをする
})
.catch((error) => console.error(`何かがうまくいきませんでした。 ${error}`));
詳細な例が仕様書にあります。
仕様書
Specification |
---|
Web Bluetooth # dom-bluetooth-requestdevice |
ブラウザーの互換性
BCD tables only load in the browser