3

我正在尝试使用 Chrome webusb API 允许 POS Web 应用程序直接打印到 StarMicronics(或任何收据打印机)。

我在这里使用的示例几乎完全一样,只是我将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 上运行良好。

对此的任何帮助将不胜感激。

4

1 回答 1

4

您在 Windows 上收到“拒绝访问”错误,因为已经有一个驱动程序声明了该设备。Windows 驱动程序模型要求为将由用户空间应用程序(如 Chrome)访问的任何设备加载“winusb.sys”驱动程序。

请参阅对在 Windows 上遇到同样困难的智能卡读卡器的这个较早问题的回答。

于 2017-11-07T01:44:59.933 回答