我正在尝试允许POS网络应用使用Chrome webusb API直接打印到StarMicronics(或任何收据打印机)。
我几乎完全使用示例here,除了我已将vendorId
过滤器修改为StarMicronics的供应商ID。我也试过一个完全空的过滤器。它在我测试它的Mac计算机上运行良好,但问题出在Windows上。
当我点击打印按钮时,Chrome会打开连接窗口,我的设备已列出,我可以选择它并点击连接。所以navigator.usb.getDevices()
工作得很好。当我刷新窗口后,在将网站连接到设备后,Chrome会再次找到设备,没有问题。
当我尝试device.open()
时出现问题。我在控制台中收到此错误:DOMException: Access Denied.
从这一点开始,我无法执行device.selectConfiguration()
或device.claimInterface()
,因为我收到设备必须首先打开的错误,显然
我在Chrome中启用了我知道的所有标记:
#enable-experimental-web-platform-features
#enable-webusb
#new-usb-backend
但这一切都没有帮助。我还尝试过使用其他打印机,例如HP Deskjet和Dymo Label Writer,这些打印机都会出现相同的错误消息,即拒绝访问。
同样,它在Mac上运行良好。
对此的任何帮助将不胜感激。
答案 0 :(得分:2)
你得到了#34;访问被拒绝" Windows上的错误,因为已经有一个已声明该设备的驱动程序。 Windows驱动程序模型要求" winusb.sys"驱动程序将加载任何将由Chrome等用户空间应用程序访问的设备。
请参阅my answer之前关于在Windows上遇到相同难度的智能卡读卡器的问题。