Bluetooth: getAvailability() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

getAvailability() 方法是 Bluetooth 接口的一个方法,它名义上返回 true,表示用户代理可以支持蓝牙(因为设备有蓝牙适配器),否则返回 false

使用“名义上”这个词是因为,如果 Web 蓝牙 API 的使用权限被 Permissions-Policy: bluetooth 权限拒绝,该方法将始终返回 false。此外,用户可以配置其浏览器,即使浏览器确实有一个运行中的蓝牙适配器,也能从 getAvailability() 调用中返回 false,反之亦然。如果权限阻止了访问,则此设置值将被忽略。

即使 getAvailability() 返回 true,并且设备实际上有一个蓝牙适配器,这并不一定意味着调用 navigator.bluetooth.requestDevice() 会解析为一个 BluetoothDevice。蓝牙适配器可能未开启,并且用户可能会在提示时拒绝使用该 API 的权限。

语法

js
getAvailability()

参数

无。

返回值

一个 Promise,它会解析为一个 Boolean 值。

如果访问被 Permissions-Policy: bluetooth 拒绝,如果用户已将浏览器配置为始终解析为 false,或者设备没有蓝牙适配器,那么该 Promise 将解析为 false。否则,它将解析为 true

异常

无。

示例

下面的代码片段会在控制台中打印一条消息,指示设备是否支持蓝牙。

js
navigator.bluetooth.getAvailability().then((available) => {
  if (available) {
    console.log("This device supports Bluetooth!");
  } else {
    console.log("Doh! Bluetooth is not supported");
  }
});

规范

规范
Web 蓝牙
# dom-bluetooth-getavailability

浏览器兼容性