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()
检索以前已授予站点权限的任何设备。
可以使用 权限 API 的 navigator.permissions.query()
方法以及 bluetooth
权限来测试站点是否具有使用蓝牙设备的权限。权限状态将为 granted
、denied
或 prompt
(需要用户确认提示)
const btPermission = await navigator.permissions.query({ name: "bluetooth" });
if (btPermission.state !== "denied") {
// Do something
}
规范
规范 |
---|
Web 蓝牙 # 蓝牙 |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。