我正在开发一个使用Chrome's Bluetooth API的应用程序。开发过程非常烦人,因为每次更改代码时,页面都会重新加载,并且我需要请求权限才能再次连接到蓝牙设备,并且这些权限只能通过单击界面的手动过程来授予
const device = await navigator.bluetooth.requestDevice(options);
将触发此操作(抱歉,屏幕截图为德语)
无法保存和恢复蓝牙权限
navigator.permissions.query({name:'bluetooth'})
这有一天可能会实现,但是铬项目正在进行中。
现在我想知道,是否有可能以任何方式更改chrome中的设置以放松安全设置,从而允许我仅访问蓝牙而无需被授予访问权限?不是通过JavaScript,而是通过Chrome中的某些设置或某些我可以执行的sudo
命令来执行?
答案 0 :(得分:0)
很抱歉回答这个问题。
我最近实现了一个新的权限后端以及两个API,这些API将允许使用以前允许的蓝牙设备。
新权限后端在chrome:// flags /#enable-web-bluetooth-new-permissions-backend后面实现。新的后端将保留通过requestDevice()
授予的设备权限,直到在“网站设置”或“页面信息”对话框中重置权限为止。
对于Chrome 85.0.4165.0或更高版本,getDevices()
和watchAdvertisements()
在chrome:// flags /#enable-experimental-web-platform-features标志之后实现。这些API的建议用法是使用getDevices()
检索允许的BluetoothDevices数组,然后在这些设备上调用watchAdvertisements()
开始扫描。当从设备检测到广告包时,advertisementreceived
事件将在与其对应的设备上触发。此时,蓝牙设备已在范围内并且可以连接。
请尝试使用此新功能,并使用Blink>蓝牙组件在https://crbug.com上提交所有错误。