Web Bluetooth API

有限可用性

此功能不是基线功能,因为它在一些最广泛使用的浏览器中无法使用。

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

Web Bluetooth API 提供了连接和交互蓝牙低功耗外设的功能。

注意:此 API 不可用于 Web Workers(未通过 WorkerNavigator 公开)。

接口

蓝牙

提供查询蓝牙可用性和请求访问设备的方法。

BluetoothCharacteristicProperties

提供特定 BluetoothRemoteGATTCharacteristic 的属性。

BluetoothDevice

在特定的脚本执行环境中表示蓝牙设备。

BluetoothRemoteGATTCharacteristic

表示 GATT 特性,它是一个基本的数据元素,提供有关外设服务的更多信息。

BluetoothRemoteGATTDescriptor

表示 GATT 描述符,它提供有关特性的值的更多信息。

BluetoothRemoteGATTServer

表示远程设备上的 GATT 服务器。

BluetoothRemoteGATTService

表示 GATT 服务器提供的服务,包括设备、参考服务的列表以及此服务的特性的列表。

其他接口的扩展

蓝牙 API 扩展了以下 API,并添加了列出的功能。

返回当前文档的 Bluetooth 对象,提供对 Web Bluetooth API 功能的访问。

安全注意事项

Web Bluetooth API 只能在安全上下文中使用。

对 API 的访问由 权限策略 指令 bluetooth 控制。bluetooth 策略的默认允许列表为 self,这在同源嵌套框架中启用了蓝牙使用,但默认情况下阻止了第三方内容访问。通过在 Permissions-Policy: bluetooth HTTP 标头和所需的 <iframe> 中指定允许的来源,可以启用跨源访问。

为了使用此功能,用户必须首先授予显式权限(如果由于其他原因(例如被权限策略阻止)不允许使用,则不会提示他们访问)。当调用 Bluetooth.requestDevice() 请求访问尚未授予权限的新蓝牙设备时,将显示权限提示(拥有全局对象还必须具有 瞬态激活)。您可以使用 Bluetooth.getDevices() 检索以前已授予站点权限的任何设备。

可以使用 权限 APInavigator.permissions.query() 方法以及 bluetooth 权限来测试站点是否具有使用蓝牙设备的权限。权限状态将为 granteddeniedprompt(需要用户确认提示)

js
const btPermission = await navigator.permissions.query({ name: "bluetooth" });
if (btPermission.state !== "denied") {
  // Do something
}

规范

规范
Web 蓝牙
# 蓝牙

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。