Я пытаюсь разрешить веб-приложению POS печатать напрямую на StarMicronics (или на любом принтере чеков, если на то пошло) с помощью Chrome webusb API.
Я использую пример здесь почти точно, за исключением того, что я изменил фильтр vendorId
на идентификатор поставщика СтарМикроникс. Я также пробовал это с полностью пустым фильтром. Он отлично работает на компьютерах 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.
Любая помощь по этому вопросу будет принята с благодарностью.