Chrome WebUSB API无法找到兼容设备

deikduxw  于 2023-05-27  发布在  Go
关注(0)|答案(1)|浏览(475)

我正在尝试通过网页(通过HTTPS)访问我的USB设备。我的USB设备已启动并运行,并且还启用了Experimental Web Platform功能chrome://flags/#enable-experimental-web-platform-features。即使我在代码中提供了正确的vendorId和productId,chrome还是显示消息“未找到兼容设备”。我哪里做错了?下面是我的代码

<!DOCTYPE html>
<html lang="en">
  <head> 
  </head>
  <body>
    <button id="request-device">Request Device</button>
    <script>
document.getElementById("request-device").addEventListener("click", ()=>{
            navigator.usb.requestDevice({filters: [{vendorId: 0x03F0}, {productId: 0x5A07}]})
            .then((usbDevice)=>{
                console.log("product name: "+usbDevice.productName);
            })
            .catch((e)=>{
                console.log("There is no devie...."+e);
            });
        });
    </script>
  </body>
</html>
piv4azn7

piv4azn71#

设备可能不显示的原因有以下几个:
首先,Chrome没有检测到设备已连接。Chrome在chrome://device-log中记录它发现的每个USB设备。检查您的设备是否已被检测到。它还将在chrome://usb-internals的“设备”选项卡中提供详细的设备信息。
另一个原因是Chrome可能隐藏了设备,因为它没有实现任何允许网站使用WebUSB API声明的接口。例如,如果设备是USB大容量存储设备,则该接口不可声明,并且如果没有其他接口,则该设备将被隐藏。由于Chrome 90中的一个错误,如果设备没有接口,它也不会出现。这将在Chrome 91中得到修复,您可以在最新的beta通道更新中验证该修复。

相关问题