Chrome 121中#enable-web-bluetooth-new-permissions-backend标志及watchAdvertisements()消失咨询
BluetoothDevice.watchAdvertisements() 废弃说明及替代方案
接口失效原因
BluetoothDevice.watchAdvertisements() 是Web Bluetooth的实验性接口,现已被Chrome等主流浏览器废弃移除,MDN标红正是明确标记该接口已过时。你之前用到的#enable-web-bluetooth-new-permissions-backend实验标志,是专门为这个实验接口提供权限支撑的,接口废弃后标志自然被删除,这就是你的应用突然无法运行的核心原因。
替代方案:BluetoothAdvertisementWatcher API
目前实现监听蓝牙设备广播功能的标准替代方案是BluetoothAdvertisementWatcher API,这是Web Bluetooth规范更新后的正式接口,已在现代Chrome浏览器中得到支持。
核心使用示例
// 先请求目标蓝牙设备权限 const device = await navigator.bluetooth.requestDevice({ filters: [{ services: ['heart_rate'] }] // 替换为你的业务所需服务 }); // 创建并启动广播监听实例 const watcher = await device.watchAdvertisements(); // 监听广播数据接收事件 watcher.addEventListener('advertisementreceived', (event) => { // 处理广播内容,比如解析厂商数据、服务数据等 console.log('收到广播:', event.advertisement); }); // 停止监听时调用,释放资源 // watcher.stop();
关键注意事项
- 运行环境要求:必须在HTTPS环境下部署(localhost开发环境除外)
- 权限要求:需要用户主动授予蓝牙设备访问权限
- 资源管理:不再需要监听时务必调用
stop()方法,避免不必要的蓝牙连接资源占用
内容的提问来源于stack exchange,提问作者Ricky Mo
相关产品推荐
相关产品推荐

