跳转到内容

Web Bluetooth API 浏览器支持

发布于

Web Bluetooth API — Web Bluetooth API 允许网页应用通过 navigator.bluetooth.requestDevice() 请求访问附近的低功耗蓝牙(BLE)设备,并与其 GATT 服务通信。

  • 图例
  • 支持
  • 部分支持
  • 需开启标志
  • 不支持
  • 未知
浏览器 / 平台支持版本置信度来源备注
Chrome (Desktop)支持56高来源—
Chrome (Android)支持56高来源1
Edge (Desktop)支持79高来源2
Firefox (Desktop)不支持—高来源3
Firefox (Android)不支持—高来源45
Safari (macOS)不支持—高来源6
Safari (iOS)不支持—高来源78
Samsung Internet支持6.0高来源9
WebView (Android)不支持—高来源10
Opera支持43高来源11
  1. 由 browser-compat-data 镜像自 Chrome 的数据推导。
  2. 由 browser-compat-data 镜像自 Chrome 的数据推导。
  3. 实现跟踪:https://bugzil.la/674737。
  4. 实现跟踪:https://bugzil.la/674737。
  5. 由 browser-compat-data 镜像自 Firefox 的数据推导。
  6. 实现跟踪:https://webkit.org/b/101034。
  7. 实现跟踪:https://webkit.org/b/101034。
  8. 由 browser-compat-data 镜像自 Safari 的数据推导。
  9. 由 browser-compat-data 镜像自 Chrome Android 的数据推导。
  10. browser-compat-data 未记录 WebView Android 的支持。
  11. 镜像 Chrome 的实现(BCD `opera: mirror`):Linux 上有支持,但默认未启用。

源数据: /compatibility/web-bluetooth.json · 全球使用占比: 74 % (StatCounter 2026-05)

来源: 规范 · MDN · 最近核验 2026-10-03 · 置信度: 高 (由来源计算)

requestDevice() 必须在用户手势(例如点击处理函数)中调用,并通过 filters 指定 你要使用的 GATT 服务来缩小设备选择范围:

async function connectHeartRateMonitor() {
const device = await navigator.bluetooth.requestDevice({
filters: [{ services: ['heart_rate'] }],
});
const server = await device.gatt.connect();
const service = await server.getPrimaryService('heart_rate');
const characteristic = await service.getCharacteristic('heart_rate_measurement');
await characteristic.startNotifications();
return characteristic;
}

在提供该功能之前先检测 navigator.bluetooth 是否存在,并为不支持的情况提供回退:

if ('bluetooth' in navigator) {
connectButton.hidden = false;
} else {
connectButton.hidden = true;
fallbackNotice.textContent = '此浏览器无法在页面中配对蓝牙设备。';
}
  • 需要安全上下文——不允许从不安全的源调用。
  • requestDevice() 需要短暂的用户激活(点击或轻触处理函数);缺少时返回的 Promise 会以 SecurityError 拒绝。
  • 如果没有可返回的设备——例如用户没有选择任何设备——requestDevice() 会以 NotFoundError 拒绝。
  • 各浏览器与平台的支持并不一致;在为特定目标依赖该功能之前,请先查看上方的支持表。
  • 始终将上面的运行时检测与支持表结合使用:浏览器可能暴露了 navigator.bluetooth, 但仍会在请求时才表现出的限制行为。

完整参考(设备选择流程、GATT 模型、权限行为)见 Web Bluetooth API。

相关:WebUSB API。

← 返回兼容性浏览器。