是否可以在浏览器刷新时保持蓝牙 LE 连接

Is it possible to persist a Bluetooth LE connection on browser refresh

是否可以在浏览器刷新时保持蓝牙 LE 连接?或者至少减少配对时间?

最终navigator.permissions.query会支持这个。来自 Web Bluetooth Specification

的示例代码
navigator.permissions.query({
  name: "bluetooth",
  deviceId: sessionStorage.lastDevice,
}).then(result => {
  if (result.devices.length == 1) {
    return result.devices[0];
  } else {
    throw new DOMException("Lost permission", "NotFoundError");
  }
}).then(...);

然而,no browser currently implements this.

Q3 2017 起,chromium 实现正在积极处理 Web 蓝牙,但不支持此功能。

我最近实施了一个新的权限后端以及两个 API,它们将允许使用以前允许的蓝牙设备。

新权限后端在 chrome://flags/#enable-web-bluetooth-new-permissions-backend 后面实现。新后端将保留通过 requestDevice() 授予的设备权限,直到在“站点设置”或“页面信息”对话框中重置权限。

getDevices() and watchAdvertisements() are implemented behind the chrome://flags/#enable-experimental-web-platform-features flag for Chrome 85.0.4165.0 or greater. The recommended use of these APIs is to use getDevices() to retrieve an array of permitted BluetoothDevices and then calling watchAdvertisements() on these devices to start a scan. When advertisement packets are detected from the devices, the advertisementreceived 事件将在它对应的设备上触发。此时,蓝牙设备在范围内,可以连接。

请尝试这个新功能,并使用 Blink>Bluetooth 组件在 https://crbug.com 提交任何错误。