我正在尝试使用Chrome的WebUSB API允许POS网络应用程序直接打印到StarMicronics(或任何收据打印机)上。我几乎完全使用此处的示例,只是将
当我点击打印按钮时,Chrome会打开连接窗口,我的设备被列出,我可以选择它并单击“连接”。因此,
问题出现在我尝试执行
我已在Chrome中启用了我知道的所有标志:
总之,在Mac上它运行良好。如果您有任何帮助,请不吝赐教。
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上它运行良好。如果您有任何帮助,请不吝赐教。