问题标签 [webusb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 可以在带有 WebUSB 的浏览器中使用 Nodejs 吗?
我找到了https://github.com/thegecko/webusb - nodejs 的 WebUSB 实现
我还没有完全了解如何在浏览器中使用它?
javascript - WebUSB 按 deviceClass 和 deviceSubClass 过滤
我正在开发一个使用 WebUSB 的 UVC 实用程序,但我无法让它仅列出网络摄像头。我应该能够添加基于 deviceClass 和 deviceSubClass 的过滤器,但它返回一个空列表。
这是一个网络摄像头设备...
您可以看到 deviceClass 是 239 (0xEF),而 deviceSubClass 是 2,所以我应该能够根据这些标准进行过滤,但我没有得到任何结果。
https://www.xmos.com/download/AN00127:-USB-Video-Class-Device(2.0.2rc1).pdf
对于 Video 类设备,必须将“bDeviceClass”、“bDeviceSubClass”和“bDeviceProtocol”字段分别设置为 0xEF、0x02 和 0x01。
没有过滤器,我可以看到所有的 USB 设备
我也尝试过添加protocolCode,但这也不起作用,我认为没有必要。即使只传递 classCode 字段也会返回一个空列表。
android - 是否可以通过 WebUSB 访问 android 配件?
我有一个自定义硬件,它作为一个通过 USB 连接到手机的 android 附件工作。我设法通过本机 android 应用程序与它进行通信。我想知道是否可以通过 WebUSB API 与它进行通信。
到目前为止,我只是尝试使用空过滤器使用 requestDevice() 列出可用设备,但我的设备未显示在列表中。该站点是通过 https 提供的,因此这不是问题,并且出现了与 otg 一起使用的其他设备。
我还没有设法在文档中找到任何关于支持 android 配件的内容。
android - 无法从 Android 平板电脑中声明 WebUSB 接口(设备或资源繁忙 16)。Windows 工作正常
我正在尝试通过 WEBUSB 将 USB 热敏打印机连接到我的 Android 平板电脑(Samsung Galaxy Tab S4、Android 9),但在尝试声明接口时出现此错误:“未能声明接口 0:设备或资源忙(16)"
我正在发布代码,但我认为问题不在这里,因为它在 Windows 10 上运行良好(在使用 Zadig 将默认驱动程序更改为 WinUSB 之后):
事实上,我使用本文提供的不错的工具得到了相同的结果: https ://labs.mwrinfosecurity.com/blog/webusb/ 这个工具基本上试图声明所有接口。
所以,我的猜测是 Android 本身已经声明了这个接口。我还尝试启用开发人员选项以查看那里是否有有用的东西,但我没有找到任何东西。
非常感谢任何帮助。
垫
javascript - Chrome 无法识别 USB 内部的 USB 标签打印机
我正在尝试创建一个网络应用程序,我可以在其中使用 webusb 将标签直接打印到标签打印机 Zebra LP2844。我遇到的问题是在 Chrome://usb-internal 下找不到打印机。设备管理器中使用的驱动程序是 usbprint.sys。当我使用 Zadig 将其更改为 winusb 时,打印机会显示,但我不再能够打印到它。每次我尝试打印时,它都会说打印错误。一旦我回滚驱动程序,它就会打印得很好,但在 chrome 中找不到。我在win7中试过这个。有任何想法吗?
javascript - 使用 javascript 将 DataView 对象转换为位图
我正在尝试使用webusb
api 从 USB 生物识别指纹读取器设备获取图像。从设备返回的数据是一个DataView()
(类型化数组?arraybuffer?)。我用谷歌搜索,找不到从这个数据视图对象转换/提取图像的方法。它是javascript的黑洞吗?我会很感激任何想法。
记录的返回数据:
arduino - 如何使用 TinyUSB 让 nRF52840 通过 webusb 与浏览器通信?
我没有很多嵌入式设备的经验或深入的编程知识。我主要与 Arduino 合作。
最近,我在Adafruit TinyUSB for Arduino 的帮助下选择和使用了一个 SAMD21 板来与webusb一起工作。Arduino
USB Stack
TinyUSB
USB Stack
现在,arduino webusb目前还不支持nRF52840。但是TinyUSB 可以。
所以我想知道我应该如何让我的 nRF52840 板与浏览器通信?TinyUSB 文件现在对我没有任何意义。
我不一定想要现成的答案,我愿意投入时间和精力。只需要一些指导和正确的方向,我应该在哪里看,我应该写什么文件,或者对此有帮助。
我的 nRF52840 板是新的 Arduino Nano 33 BLE。
javascript - 使用没有提示消息的 WebUSB 的 getDevices 查询所有可用设备?
刚刚发现了WebUSB
允许应用程序访问插入用户机器的特定设备的新 API。
作为我开发的一部分,我想映射用户的设备(例如,通过查询他们的 VendorID 和 ProductID 来显示连接设备的列表)。
我注意到,为了查询用户的所有可用设备,我必须使用以下代码:navigator.usb.requestDevice({filters:[]})
.
此代码向用户提示权限消息,该消息必须为会话启用特定设备。
我的问题 - 是否可以在未经许可的情况下查询供应商 ID 和产品 ID?(当然没有任何尝试使用实际设备,只需查询它)。
javascript - WebUsb:如何修复“NetworkError:无法声明接口”。
我正在尝试使用使用 WebUSB 的 android 平板电脑连接。它找到了我的热敏 USB 打印机并能够打开连接。但是在 device.claimInterface(0) 时,我总是收到错误“NetworkError: Unable to claim interface”
我尝试重新启动 android 平板电脑,确保没有其他应用程序正在使用该设备,我重新启动了设备。我确保没有通过 android 设置打印机。我之前尝试过运行 device.reset() 并且之前尝试过运行 device.releaseInterface()。我试图找到其他接口来连接。
如果您要回复有关运行手动命令的问题,我必须通过 PWA 为我们的客户使用它。因此,由于默认情况下会加载 linux 驱动程序,因此在 android 终端上运行手动命令以释放界面并不是一个好的解决方案,是否还有这种情况?