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