【问题标题】:Smartcard Reader and ChromeApp智能卡读卡器和 ChromeApp
【发布时间】:2015-09-23 10:30:11
【问题描述】:

我想制作一个可以访问 USB 智能卡读卡器 (HID Global OmniKey 3121) 的 Chrome 应用程序。

有人成功地做到了这一点吗?

很遗憾,我无法使用usb.getDevices 看到它。

script.js(由 index.html 调用,它本身由 background.js 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 在扩展页面中识别。

提前感谢您的帮助。

编辑

这是我的 ma​​nifest.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.getDevicesusb.findDevices 识别。 usb.getUserSelectedDevices 仅列出鼠标。

【问题讨论】:

  • this crbug issue。还要添加manifest.json(或仅相关部分:权限、后台页面声明等)和该代码片段的文件名。
  • @wOxxOm 再次感谢您提供的链接。它让我找到了zadig.akeo.ie 替代 USB 驱动程序,它们被chrome.usb API 识别。现在可以了!

标签: javascript html google-chrome-app smartcard-reader winusb


【解决方案1】:

使用 HID Global 的本机驱动程序时,Chrome 无法识别设备。

解决方法是使用备用 USB 驱动程序,例如由 zadig.akeo.ie 的 Zadig 安装程序提供的一个:

  • WinUSB
  • libusb-win32
  • libusbK

我在 HID 设备上打开了一个案例,但他们的技术支持尚未了解问题(他们不知道 Chrome 平台是什么...)并将我重定向到 Google。

我在 Google 开了一个案例,但他们回答我应该在 StackOverflow 上发帖!!他们似乎并不介意他们的平台是否无法识别标准 USB 智能卡设备,尽管在 Windows 设备管理器中可见......

更新

HID 技术支持人员表示,他们的驱动程序将在 2016 年之前支持该平台。 Goolge 支持仍然......不合适。

Windows 7-10 更新

在 Windows 7 和 10 上,我不需要安装通用驱动程序。相反,我只是在 Windows 设备管理器 中编辑智能卡阅读器并选择 Previous Driver。它将恢复为 Windows 通用 USB CCID 驱动程序,该驱动程序适用于我的旧 PC/SC Winscard 应用程序和我的 Chrome 应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多