是否可以检查是否使用javascript启用了蓝牙,是否有任何事件可以检测其更改?
网络蓝牙API中有getAvailability()方法:
getAvailability()返回一个承诺,如果用户代理在具有蓝牙无线电的系统上运行,否则将为false解析。蓝牙无线电的供电状态不影响可用性,因为应用程序可以提示用户使用requestDevice()打开收音机。可用性更改事件可用于检测蓝牙无线电可用性的变化。 这个API对于开发人员了解是否应该向用户显示Web蓝牙的UI非常有用。
但是正如所描述的,蓝牙无线电的电源状态不会影响可用性,它不会对计算机设置下的蓝牙关闭做出反应。
发布于 2020-05-19 16:32:14
正确,getAvailability()只告诉您系统是否有蓝牙收音机。
如果收音机被打开或关闭,没有一个特定的API可以告诉站点。如果requestDevice()被呼叫并且用户关闭了收音机,他们将在Chrome的设备选择器中得到通知。他们可以选择取消提示符或为他们打开蓝牙设置来启用它。无论哪种方式,requestDevice()都会拒绝一个错误,直到用户在设置中启用蓝牙。
发布于 2022-07-20 15:40:56
您可以使用以下代码来检查蓝牙的可用性。然而,只有Chrome浏览器有蓝牙对象。
navigator.bluetooth.getAvailability().then(available => {
if (available)
console.log("This device supports Bluetooth!");
else
console.log("Doh! Bluetooth is not supported");
});参考资料:https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getAvailability
https://stackoverflow.com/questions/61890029
复制相似问题