【问题标题】:Can I access an USB HID in Chrome without an App?我可以在没有应用程序的情况下在 Chrome 中访问 USB HID 吗?
【发布时间】:2020-04-11 23:45:49
【问题描述】:

我想使用网站上的 USB HID。该网站只能由 Chrome 浏览器访问。该解决方案应该需要最少数量的额外软件和设置才能让网站用户正常工作。

USB 设备在操作系统中显示为 USB HID,我需要在其中写入和读取字节数组,以实现设备某些功能的制造商规范。

我目前的解决方案包括两部分:

  1. 使用chrome.hid API 与设备通信的Chrome 应用程序。此应用程序公开了一个 Chrome 跨扩展消息端口,以提供和接口用于“服务调用”。
  2. 网站上的 JavaScript 代码向 Chrome 应用发送请求,然后与 USB 设备对话以处理请求。

为了让用户更容易我想摆脱该应用程序,因此用户只需浏览网站,必要时授予对设备的访问权限,然后就可以使用该设备。 明确地说,我希望用户能够在不安装任何依赖项的情况下使用网站。

我已经尝试使用 WebUSB navigator.usb API,但 Chrome 会阻止访问 USB HID 设备。有没有其他方法可以做到这一点?

【问题讨论】:

  • 扩展没有这样的API,所以唯一的方法是编写一个单独的实用程序(例如在node.js或python等中),要求用户安装它,然后你的扩展可以通信通过nativeMessaging.
  • 我考虑了这条路线,但它也涉及用户安装该单独的实用程序。我想摆脱该应用程序,因为它是在能够使用该网站之前安装的额外依赖项。我将在问题中澄清这一点。
  • 关于您的问题的问题。使用您当前的设置(Chrome 应用程序 + 网站),您是否能够在不关注浏览器(例如最小化)的情况下从您的 HID 设备发送和接收数据,同时在同一台计算机上执行一些其他操作,从而独立发送和接收数据?

标签: google-chrome google-chrome-extension usb google-chrome-app webusb


【解决方案1】:

WebHID 正在为此用例开发。它自 Chrome 78 以来一直可用 behind a feature flag,预计将在 Chrome 84 中进行原始试用(由于当前的 Covid-19 情况可能会更晚),预计 2020 年 8 月稳定。

更多详情:https://github.com/robatwilliams/awesome-webhid

【讨论】:

  • 谢谢,这真的很有帮助(尤其是资源收集)。虽然必须启用功能标志并不理想,但我发现它比安装应用程序要好得多。
猜你喜欢
  • 2014-05-27
  • 2011-01-14
  • 2012-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-04
  • 1970-01-01
相关资源
最近更新 更多