Secure context
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The Bluetooth interface of the Web Bluetooth API returns a Promise to a BluetoothDevice object with the specified options.
Interface
interface Bluetooth : EventTarget {
Promise<boolean> getAvailability();
attribute EventHandler onavailabilitychanged;
[SameObject]
readonly attribute BluetoothDevice? referringDevice;
Promise<sequence<BluetoothDevice>> getDevices();
Promise<BluetoothDevice> requestDevice(optional RequestDeviceOptions options = {});
};
Bluetooth includes BluetoothDeviceEventHandlers;
Bluetooth includes CharacteristicEventHandlers;
Bluetooth includes ServiceEventHandlers;
Properties
Inherits properties from its parent EventTarget.
Bluetooth.referringDeviceRead only- Returns a reference to the device, if any, from which the user opened the current page. For example, an Eddystone beacon might advertise a URL, which the user agent allows the user to open. A BluetoothDevice representing the beacon would be available through
navigator.bluetooth.referringDevice.
Events
Bluetooth.onavailabilitychanged- An event handler that runs when an event of type
availabilitychangedhas fired.
Methods
Bluetooth.getAvailability()- Returns a
Promisethat resolved to aBooleanindicating whether the user-agent has the ability to support Bluetooth. Some user-agents let the user configure an option that affects what is returned by this value. If this option is set, that is the value returned by this method. Bluetooth.getDevices()- Returns a
Promisethat resolved to an array ofBluetoothDevices which the origin already obtained permission for via a call toBluetooth.requestDevice(). Bluetooth.requestDevice()- Returns a
Promiseto aBluetoothDeviceobject with the specified options.
Specifications
| Specification | Status | Comment |
|---|---|---|
| Web Bluetooth The definition of 'Bluetooth' in that specification. |
Draft | Initial definition. |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bluetooth | Chrome
Full support
56
| Edge
Full support
≤79
| Firefox No support No | IE No support No | Opera
Full support
43
| Safari No support No | WebView Android No support No | Chrome Android Full support 56 | Firefox Android No support No | Opera Android Full support 43 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
getAvailability | Chrome
Full support
56
| Edge
Full support
≤79
| Firefox No support No | IE No support No | Opera
Full support
43
| Safari No support No | WebView Android No support No | Chrome Android Full support 56 | Firefox Android No support No | Opera Android Full support 43 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
onavailabilitychanged | Chrome
Full support
56
| Edge
Full support
≤79
| Firefox No support No | IE No support No | Opera
Full support
43
| Safari No support No | WebView Android No support No | Chrome Android Full support 56 | Firefox Android No support No | Opera Android Full support 43 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
referringDevice | Chrome
Full support
56
| Edge
Full support
≤79
| Firefox No support No | IE No support No | Opera
Full support
43
| Safari No support No | WebView Android No support No | Chrome Android Full support 56 | Firefox Android No support No | Opera Android Full support 43 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
requestDevice | Chrome
Full support
56
| Edge
Full support
≤79
| Firefox No support No | IE No support No | Opera
Full support
43
| Safari No support No | WebView Android No support No | Chrome Android Full support 56 | Firefox Android No support No | Opera Android Full support 43 | Safari iOS No support No | Samsung Internet Android Full support 6.0 |
Legend
- Full support
- Full support
- No support
- No support
- Experimental. Expect behavior to change in the future.
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- See implementation notes.
- User must explicitly enable this feature.
- User must explicitly enable this feature.
