蓝牙: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

浏览器兼容性

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