【问题标题】:WebUSB API addEventListener disconnect not triggeringWebUSB API addEventListener 断开连接未触发
【发布时间】:2017-11-29 16:23:09
【问题描述】:

我正在尝试使用 WebUSB API 从 USB 设备获取断开连接事件。

我正在通过以下方式访问设备并添加事件侦听器以“断开连接”:

    navigator.usb.requestDevice({ filters: [{ vendorId: ... ... ...}] })
    .then(device=> {
            navigator.usb.addEventListener('disconnect', device => {
                    printToScreen("Message", "Device disconnect!!! ");
            });
            return device.open();
    })

仅供参考:printToScreen() 方法将文本添加到 div 标签。

设备已连接,当我单击地址栏中的锁定图标时,我可以看到列出的设备权限,并且我可以检索着陆页 URL 没有问题。当我断开设备时,列出的设备权限被删除(这是正常的,因为设备没有序列号,因此用户授予的权限不能持久)但没有出现断开事件?不知道我做错了什么。

所以我的问题是,如何从断开事件中检测/获取回调?或者这是一个错误,我应该提交它?任何帮助将不胜感激,谢谢。

同样,在将序列号添加到设备后,当我尝试使用“return device.open()”打开设备时出现“NotFoundError:设备不可用”,但“navigator.usb.requestDevice”返回正确的设备。

【问题讨论】:

  • 通过替换在'printToScreen'上方添加console.log进行双重检查后,是的,提交错误。

标签: javascript webusb


【解决方案1】:

我刚刚提交了issue 737321 来跟踪这个问题。这是一种故障模式,在 chrome.usb API 中可以解决,但在 WebUSB 中通过,因为复制它取决于内部 Chrome 组件的初始化顺序。

更新:此修复将在 Chrome 61.0.3144.0 中提供。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2014-04-03
    • 1970-01-01
    相关资源
    最近更新 更多