问题描述
我一直在研究一个功能,其目标是读取条形码和二维码。问题是: 我的 PC 上连接了两台条码扫描仪,想知道数据来自哪一台。
这是我到目前为止使用“navigator.usb”的内容:
JS 函数
async function checkSource(e) {
navigator.usb.getDevices()
.then((device) => {
console.log(device)
})
}
JSX 元素(我正在使用 ReactJS)
<Input onChange={checkSource} />
现在,是否可以代替 console.log 记录我连接的设备列表,检测对我的 Input 组件的“键入”?
解决方法
我假设您当前在键盘模拟模式下使用条形码扫描仪。理想情况下,为来自扫描仪的输入分派的 KeyboardEvent
将包含一个标识符,“键盘”为其生成了事件。这不是目前指定这些事件的方式。
如果您想使用 WebUSB,那么您需要将条码扫描器置于一种不模拟键盘的模式。然后您就可以直接与两台设备进行通信,并且可以清楚地知道是哪台设备在发送数据。