【发布时间】:2021-07-11 10:39:08
【问题描述】:
我有一个专有的 USB 设备,它具有通过 USB 闪烁的功能。我想在浏览器中复制这个闪烁功能,但我不确定要使用什么 API。
访问chrome://usb-internals/ 来检查我的设备给了我以下信息:
设备使用类代码 8:大容量存储来宣传自己。该设备未显示在我的文件系统中,例如它不是普通的 USB 随身碟。根据this StackOverflow answer的说法,由于安全原因,WebUSB被阻止访问大容量存储设备,我应该改用WebHID。
但是,使用 WebHID 仍然不允许我连接到我的设备。这是我使用的示例代码:
const filter = [
{
vendorId: 0xabcd, // correct VID:PID obtained via lsusb
productId: 0x1234
}
];
const [device] = await navigator.hid.requestDevice({ filter });
此外,访问chrome://device-log/ 会在 USB 和 HID 设备之间产生明显差异。例如,当我插入鼠标时,Chrome 设备日志显示连接了 USB HID 设备。当我插入 USB pendrive 时,调试日志中有两行:一个 HID 设备,一个大容量存储设备。当我插入我的专有驱动器时,我得到一条线:USB 大容量存储设备。
如何说服 WebHID 连接到我的专有大容量存储设备?
【问题讨论】:
标签: javascript google-chrome usb webusb webhid