Web Bluetooth / Device Disconnect (Async Await) Sample
Available in Chrome 55+ |
View on GitHub |
Browse Samples
The Web Bluetooth
API lets websites discover and communicate with devices over the
Bluetooth 4 wireless standard using the Generic Attribute Profile (GATT). It is
currently partially implemented in Android M, Chrome OS, Mac, and Windows 10.
This sample illustrates the use of the Web Bluetooth API to disconnect
and get notified from a disconnection of a nearby Bluetooth Low Energy Device
after connecting to it. You may want to check out the Device Disconnect (Promises) sample.
alert_notification
automation_io
battery_service
blood_pressure
body_composition
bond_management
continuous_glucose_monitoring
current_time
cycling_power
cycling_speed_and_cadence
device_information
environmental_sensing
generic_access
generic_attribute
glucose
health_thermometer
heart_rate
human_interface_device (blocklisted)
immediate_alert
indoor_positioning
internet_protocol_support
link_loss
location_and_navigation
next_dst_change
phone_alert_status
pulse_oximeter
reference_time_update
running_speed_and_cadence
scan_parameters
tx_power
user_data
weight_scale
Live Output
JavaScript Snippet
var bluetoothDevice ;
async function onScanButtonClick () {
let options = { filters : []};
let filterService = document . querySelector ( ' #service ' ). value ;
if ( filterService . startsWith ( ' 0x ' )) {
filterService = parseInt ( filterService );
}
if ( filterService ) {
options . filters . push ({ services : [ filterService ]});
}
let filterName = document . querySelector ( ' #name ' ). value ;
if ( filterName ) {
options . filters . push ({ name : filterName });
}
let filterNamePrefix = document . querySelector ( ' #namePrefix ' ). value ;
if ( filterNamePrefix ) {
options . filters . push ({ namePrefix : filterNamePrefix });
}
bluetoothDevice = null ;
try {
log ( ' Requesting Bluetooth Device... ' );
bluetoothDevice = await navigator . bluetooth . requestDevice ( options );
bluetoothDevice . addEventListener ( ' gattserverdisconnected ' , onDisconnected );
connect ();
} catch ( error ) {
log ( ' Argh! ' + error );
}
}
async function connect () {
log ( ' Connecting to Bluetooth Device... ' );
await bluetoothDevice . gatt . connect ();
log ( ' > Bluetooth Device connected ' );
}
function onDisconnectButtonClick () {
if ( ! bluetoothDevice ) {
return ;
}
log ( ' Disconnecting from Bluetooth Device... ' );
if ( bluetoothDevice . gatt . connected ) {
bluetoothDevice . gatt . disconnect ();
} else {
log ( ' > Bluetooth Device is already disconnected ' );
}
}
function onDisconnected ( event ) {
// Object event.target is Bluetooth Device getting disconnected.
log ( ' > Bluetooth Device disconnected ' );
}
function onReconnectButtonClick () {
if ( ! bluetoothDevice ) {
return ;
}
if ( bluetoothDevice . gatt . connected ) {
log ( ' > Bluetooth Device is already connected ' );
return ;
}
try {
connect ();
} catch ( error ) {
log ( ' Argh! ' + error );
}
}