Web Bluetooth API 允许网站通过 GATT(Generic Attribute Profile) 客户端与附近用户选择的低功耗蓝牙(BLE)设备进行安全和隐私保护的通信 API。基于 Promise 规范。
维基百科:
其还在实验阶段,在生产中使用之前,请仔细检查浏览器兼容性表。以下是 Can I Use 给出的兼容情况:
注意:此 API 在 Web Worker 中不可用。
下面,我们将使用一个简单的示例,来看看如何获取一台 BLE 设备的基本信息。
注意:为了方便实现效果,我们自己在本地手写一个配置选项。
我们使用 navigator.bluetooth.requestDevice()
方法并为函数提供一个配置对象,该对象含有关我们要使用哪个设备,以及都有哪些服务可用的信息。它将返回一个 Promise
对象。如果没有蓝牙设备选择界面,则此方法返回与条件匹配的第一个设备。
<button class="btn">点我!</button>
let options = {
filters: [
{ services: ['heart_rate'] },
{ services: [0x1802, 0x1803] },
{ services: ['c48e6067-5295-48d3-8d5c-0395f61792b1'] },
{ name: '设备名' },
{ namePrefix: '前缀' }
],
optionalServices: ['battery_service']
}
const button = document.querySelector('.btn')
button.addEventListener('click', function () {
navigator.bluetooth
.requestDevice(options)
.then((device) => {
console.log('Got device:', device.name)
// 在此处实现设备调用
})
.catch((err) => {
console.log('Error: ' + err)
})
})
效果如下:
目前,已经有很多例子可以实践和借鉴,你可以在 demos 或 Web Bluetooth Samples 查看更多例子,如:Web 蓝牙打印机、LED 显示器、赛车等。