Squeak.ru - шаблоны программирования

Webusb: доступ запрещен при попытке открыть принтер в Windows

Я пытаюсь разрешить веб-приложению 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.

Любая помощь по этому вопросу будет принята с благодарностью.


  • Вы устранили эту проблему. Даже я столкнулся с той же проблемой, не могли бы вы мне помочь 03.07.2021

Ответы:


1

Вы получаете сообщение об ошибке «Отказано в доступе» в Windows, потому что уже есть драйвер, заявивший права на устройство. Модель драйвера Windows требует, чтобы драйвер winusb.sys загружался для любого устройства, к которому будет обращаться пользовательское приложение, такое как Chrome.

См. мой ответ на этот более ранний вопрос о устройствах чтения смарт-карт, которые сталкиваются с той же проблемой в Windows.

07.11.2017
  • Ах, да, я видел это, но поскольку его ошибка заключалась в том, что он потребовал устройство (и у меня нет проблем с этим), но с его открытием, я не думаю, что это применимо к моей ситуации. Спасибо, сегодня попробую, посмотрим, что получится. 08.11.2017
  • Итак, я загрузил утилиту zadig, поэтому я удалил принтер из принтеров Windows, открыл zadig и убедился, что драйвер WinUSB (v6.1.7600.16385) установлен и что он не отображается в принтерах Windows, но я все еще получаю ту же ошибку. Еще раз обратите внимание: дело не в заявлении на устройство, которое работает нормально, а в попытке открыть устройство, и я получаю немного другую ошибку, чем человек в вашем другом ответе. Может я все-таки что-то не так делаю, я не знаком с этой usb штучкой. 08.11.2017
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...