2017-11-06 46 views
2

私は、POS webアプリケーションがChrome webusb APIを使用してStarMicronics(または領収書プリンタ)に直接印刷できるようにしようとしています。Webusb:Windowsでプリンタを開こうとするアクセスが拒否されました

vendorIdフィルタをStarMicronicsのベンダーIDに変更したことを除いて、私は例hereをほぼ正確に使用しています。私も完全に空のフィルターでそれを試してみました。それは私がそれをテストしたMacコンピュータでうまくいくが、問題はWindows上にある。

印刷ボタンをクリックすると、Chromeが接続ウィンドウを開き、デバイスが表示され、それを選択して[接続]をクリックできます。だからnavigator.usb.getDevices()はすばらしい働きをしています。ウィンドウを更新すると、Webサイトをデバイスに接続した後、Chromeはデバイスを問題なく再検索します。

device.open()を実行しようとすると問題が発生します。私はコンソールでこのエラーを受け取ります:DOMException: Access Denied.この時点から、私はdevice.selectConfiguration()またはdevice.claimInterface()のいずれかを行うことができません。なぜなら、明らかにデバイスを最初に開く必要があるというエラーが発生するからです。 #enable-experimental-web-platform-features #enable-webusb #new-usb-backend

をしかし、これのどれも助けなかった:

私はChromeで私の知っているすべてのフラグを有効にしています。私はまた、HP deskjetや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

関連する問題