WebUSB API addEventListener 断开未触发
WebUSB API addEventListener disconnect not triggering
我正在尝试使用 WebUSB 从 USB 设备获取断开连接事件 API。
我正在通过以下方式访问设备并向 "disconnect" 添加事件侦听器:
navigator.usb.requestDevice({ filters: [{ vendorId: ... ... ...}] })
.then(device=> {
navigator.usb.addEventListener('disconnect', device => {
printToScreen("Message", "Device disconnect!!! ");
});
return device.open();
})
仅供参考:printToScreen() 方法将文本添加到 div 标记。
设备已连接,当我单击地址栏中的锁定图标时,我可以看到列出的设备权限,我可以检索登录页面 URL 没问题。当我断开设备时,列出的设备权限被删除(这是正常的,因为设备没有序列号,因此不能保留用户授予的权限)但断开事件没有出现?不确定我做错了什么。
所以我的问题是,如何 detect/get 断开连接事件的回调?或者这是一个错误,我应该提交它吗?任何帮助将不胜感激,谢谢。
此外,在将序列号添加到设备后,当我尝试使用 "return device.open()" 打开设备时,我得到一个 "NotFoundError: Device unavailable",但是 "navigator.usb.requestDevice" returns 正确的设备。
我刚刚提交 issue 737321 来跟踪这个问题。这是一种故障模式,在 chrome.usb API 中得到解决,但在 WebUSB 中被忽略了,因为它的重现取决于内部 Chrome 组件的初始化顺序。
更新:此修复程序将在 Chrome 61.0.3144.0.
中可用
我正在尝试使用 WebUSB 从 USB 设备获取断开连接事件 API。
我正在通过以下方式访问设备并向 "disconnect" 添加事件侦听器:
navigator.usb.requestDevice({ filters: [{ vendorId: ... ... ...}] })
.then(device=> {
navigator.usb.addEventListener('disconnect', device => {
printToScreen("Message", "Device disconnect!!! ");
});
return device.open();
})
仅供参考:printToScreen() 方法将文本添加到 div 标记。
设备已连接,当我单击地址栏中的锁定图标时,我可以看到列出的设备权限,我可以检索登录页面 URL 没问题。当我断开设备时,列出的设备权限被删除(这是正常的,因为设备没有序列号,因此不能保留用户授予的权限)但断开事件没有出现?不确定我做错了什么。
所以我的问题是,如何 detect/get 断开连接事件的回调?或者这是一个错误,我应该提交它吗?任何帮助将不胜感激,谢谢。
此外,在将序列号添加到设备后,当我尝试使用 "return device.open()" 打开设备时,我得到一个 "NotFoundError: Device unavailable",但是 "navigator.usb.requestDevice" returns 正确的设备。
我刚刚提交 issue 737321 来跟踪这个问题。这是一种故障模式,在 chrome.usb API 中得到解决,但在 WebUSB 中被忽略了,因为它的重现取决于内部 Chrome 组件的初始化顺序。
更新:此修复程序将在 Chrome 61.0.3144.0.
中可用