3

USB スマートカード リーダー (HID Global OmniKey 3121) にアクセスできる Chrome アプリを作成したいと考えています。

誰かがそれをすることに成功したことがありますか?

残念ながら、私はそれを使用して見ることができませんusb.getDevices

script.js (それ自体がbackground.jsによって呼び出されるindex.htmlによって呼び出されます): onLaunched

//dom elements
var findBtn = document.querySelector( "button#find-btn" )
var deviceInfo = document.querySelector( "p#device-info" )

//{click}
findBtn.addEventListener( "click", findDevice )

/*
 * Try to find HID OmniKey 3x21
 */
function findDevice ()
{
  var options = {
    filters: [
      {
        vendorId: 1899,  //OmniKey AG
        productId: 12321  //CardMan 3121 but PID=0x3021
      }
    ]
  }

  chrome.usb.getDevices( options, function ( devices )
  {
    console.log( devices )
    deviceInfo.innerHTML = JSON.stringify( devices[0] )
  } )

}

デバイスはマニフェストで宣言され、拡張機能ページで Chrome によって認識されます。

よろしくお願いいたします。

編集

これが私のmanifest.jsonです:

{
  "manifest_version": 2,
  "name": "Card Reader",
  "description": "Smartcard reader",
  "version": "0.0.2",
  "minimum_chrome_version": "43",

  "app": {
    "background": {
      "scripts": [ "js/background.js" ]
    }
  },

  "permissions": [
    "usb",

    {
      "usbDevices": [
        {
          "vendorId": 1057,
          "productId": 1633
        },
        {
          "vendorId": 1133,
          "productId": 49271
        },
        {
          "vendorId": 1899,
          "productId": 12321
        }
      ]
    }
  ]
}

許可されている 3 つのデバイスは次のとおりです。

  1. ノキア Lumia 920
  2. デル オプティカル マウス
  3. OmniKey スマートカード リーダー 3121

usb.getDevicesまたはで認識されるのはマウスだけusb.findDevicesです。マウスのみが記載されていusb.getUserSelectedDevicesます。

4

1 に答える 1

5

HID Global のネイティブ ドライバーを使用すると、Chrome でデバイスが認識されません。

回避策は、別の USB ドライバーを使用することです。たとえば、zadig.akeo.ieの Zadig インストーラーによって提供されるものです。

  • WinUSB
  • libusb-win32
  • libusbK

HID Device でケースをオープンしましたが、テクニカル サポートはまだ問題を理解しておらず (Chrome プラットフォームとは何かを知りません...)、Google にリダイレクトされました。

Google でケースをオープンしましたが、StackOverflow に投稿する必要があるとの回答がありました!! プラットフォームが標準の USB スマートカード デバイスを認識できなくても、Windows デバイス マネージャーに表示されても気にしないようです...

アップデート

HID テクニカル サポートは、ドライバーが 2016 年までにプラットフォームをサポートすると述べました。

Windows 7-10 の更新

Windows 7 および 10 では、汎用ドライバーをインストールする必要はありません。代わりに、 Windows デバイス マネージャーでスマートカード リーダーを編集し、 [以前のドライバー]を選択するだけです。これは、従来の PC/SC Winscard アプリケーションと Chrome アプリの両方で動作する Windows Generic USB CCID ドライバーに戻ります。

于 2015-10-02T07:52:46.890 に答える