无法通过webUSB打开USB设备

问题描述

我需要使用webUSB将设备连接到浏览器,连接后我调用open方法,并且此错误变为“ 未捕获(承诺)DOMException:访问被拒绝。”。如何解决

ngOnInit(): void {
    const button = document.getElementById('connectButton');
    button.addEventListener('click',async () => {
      let device;
      try {
        device = await navigator.usb.requestDevice({ filters: []});
      } catch (err) {
      }

      device.open()
        .then(() => device.selectConfiguration(1))
        .then(() => device.claimInterface(device.configuration.interfaces[0].interfaceNumber));
    });
  }

解决方法

您正在运行什么平台?

在Linux上,如果当前用户无权打开USB设备,则会出现此错误。您将需要配置udev规则以允许用户访问它。

在Windows上,如果未为设备加载WinUSB驱动程序,则会出现此错误。您可以使用Zadig工具强制Windows为设备加载特定的驱动程序。

提供给站点的错误消息是故意含糊的。检查chrome:// device-log以查看有关浏览器尝试打开设备时遇到的错误的更多详细信息。