2017-11-06 18 views
2

크롬 webusb API를 사용하여 POS 웹 응용 프로그램이 StarMicronics (또는 영수증 프린터)에 직접 인쇄 할 수있게하려고합니다.Webusb : Windows에서 프린터를 열려고 시도가 거부되었습니다.

vendorId 필터를 StarMicronics의 공급 업체 ID로 수정 한 것을 제외하고는 정확히 here 예제를 사용하고 있습니다. 나는 또한 완전히 빈 필터로 그것을 시도했다. 그것은 테스트를 거친 Mac 컴퓨터에서 잘 작동하지만 문제는 Windows에서 발생합니다.

인쇄 버튼을 클릭하면 Chrome에서 연결 창이 열리고 장치가 나열되며이를 선택하고 연결을 클릭 할 수 있습니다. 따라서 navigator.usb.getDevices()은 훌륭하게 작동합니다. 창을 새로 고침하면 웹 사이트를 기기에 연결 한 후 Chrome에서 아무 문제없이 기기를 다시 찾습니다.

device.open() 할 때 문제가 발생합니다. 콘솔에서이 오류가 발생합니다. DOMException: Access Denied.이 시점에서 장치를 먼저 열어야한다는 오류가 발생하기 때문에 device.selectConfiguration() 또는 device.claimInterface()을 사용할 수 없습니다. #enable-experimental-web-platform-features #enable-webusb #new-usb-backend

을하지만이 중 어느 것도 도움이 없다 :

나는 크롬에서 내가 아는 모든 플래그를 사용할 수있다. HP 데스크젯 및 Dymo Label Writer와 같은 다른 프린터를 사용하여 액세스가 거부되었다는 동일한 오류 메시지가 표시되도록 노력했습니다.

다시 말씀 드리지만, Mac에서는 문제가 없습니다.

이 문제에 대한 도움을 주시면 대단히 감사하겠습니다.

답변

2

이미 장치를 등록한 드라이버가 있기 때문에 Windows에서 "액세스가 거부되었습니다"오류가 발생합니다. Windows 드라이버 모델을 사용하려면 Chrome과 같은 사용자 공간 응용 프로그램에서 액세스 할 수있는 모든 장치에 대해 "winusb.sys"드라이버를로드해야합니다.

Windows에서 같은 어려움을 겪는 스마트 카드 판독기에 대한 이전 질문에 대해서는 my answer을 참조하십시오.

+0

아, 그래, 그 오류를 보았으므로 장치를 주장하는 데 오류가 있었지만 열어 본 것은 내 상황에 적용되지 않는다고 생각합니다. 고마워, 나는 오늘 그것을 시험해보고, 내가 생각해 낼 수있는 것을 본다. – reblevins

+0

그래서 zadig 유틸리티를 다운로드 했으므로 Windows 프린터에서 프린터를 제거하고 zadig를 열고 WinUSB (v6.1.7600.16385) 드라이버가 설치되어 있고 Windows 프린터에 나타나지 않는지 확인했습니다. 여전히 동일한 오류가 발생합니다. 다시 한 번 말하지만, 기기를 열려고 시도 할 때와 잘 작동하는 기기를 주장하는 것이 아니므로 다른 사람의 답변과 약간 다른 오류가 발생합니다. 어쩌면 나는 아직도 틀린 일을하고있다. 나는이 USB에 익숙하지 않다. – reblevins