This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
The Bluetooth.requestDevice()
method of the Bluetooth
interface returns a Promise
to a BluetoothDevice
object with the specified options. If there is no chooser UI, this method returns the first device matching the criteria.
Syntax
Bluetooth.requestDevice([options]) .then(function(bluetoothDevice) { ... })
Returns
A Promise
to a BluetoothDevice
object.
Parameters
- options Optional
- An object that sets options for the device request. The available options are:
filters[]
: An array ofBluetoothScanFilters
. This filter consists of an array ofBluetoothServiceUUID
s, aname
parameter, and anamePrefix
parameter.optionalServices[]
: An array ofBluetoothServiceUUID
s.acceptAllDevices
: ABoolean
indicating that the requesting script can accept all Bluetooth devices. The default isfalse
.
Example
// Discovery options match any devices advertising: // . The standard heart rate service. // . Both 16-bit service IDs 0x1802 and 0x1803. // . A proprietary 128-bit UUID service c48e6067-5295-48d3-8d5c-0395f61792b1. // . Devices with name "ExampleName". // . Devices with name starting with "Prefix". // // And enables access to the battery service if devices // include it, even if devices do not advertise that service. 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(function(device) { console.log('Name: ' + device.name); // Do something with the device. }) .catch(function(error) { console.log("Something went wrong. " + error); });
Detailed examples are in the specification.
Specifications
Specification | Status | Comment |
---|---|---|
Web Bluetooth The definition of 'requestDevice()' in that specification. |
Draft | Initial definition. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 56[1] | 43[1] |
Feature | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | No support | 56[1] | 43[1] |
[1] Before Chrome 59 and Opera 46, the options parameter was required.