使用Javascript,HTML5或任何跨平台语言将数据写入USB HID(支持Android)

che*_*ezy 13 javascript usb html5 android hid

我用HTML5和JavaScript编写了一个UI.我选择了这个实现,以便我可以在Android Chrome和Windows 8 RT之间共享相同的代码.

现在,我的下一个目标是将数据写入USB HID.我正在与之通信的设备被视为HID.我提到这个部分,以防有一种方法可以写入HID设备而不是USB RAW设备.

我已就这件事做了很多研究.但是,HTML5规范经常发生变化,以至于我错过了一些东西.

无论如何,有人可以推荐一种语言或实现,我可以使用它来共享公共代码来访问Android和Windows 8 RT上的USB设备吗?如果没有办法在两者之间分享,那么仅在Android上获得USB通信的建议怎么样?


以下是我的研究和结论:

  • Silverlight:不支持.在Web插件方面,Windows 8 RT或Android不支持

  • Flash:可能的选择.虽然他们在发布Jelly Bean时删除了对Android的支持,但在这两种操作系统中均受支持

  • HTML5:不支持

    • 看看GamePad API,但它似乎只支持从游戏手柄阅读
    • 查看了设备标记,但当前草稿中不再存在此标记.我读到"导航器"对象在Javascript中替换它,但它看起来完全不同.此外,设备仅针对获取视频和音频
  • JavaScript:不支持.根据我的理解,这是因为它存在安全风险.

  • Chrome打包应用:不支持.不确定Windows 8 RT中的支持.但是,Android Chrome也不支持它.

    • 存在一个USB API,可以完全满足我的需求,但API仅适用于打包的应用程序
  • Java Applet:UNSUPPORTED.不确定Windows 8 RT中的支持.但是,Android Chrome也不支持它.

    • 有关如何与USB设备通信的许多资源.但是,由于智能手机不支持Java小程序,因此最终不受支持.
  • 几个有用的帖子

Bri*_*ity 7

我其实想过如何做与此类似的事情....

如果您可以控制连接了USB设备的计算机,那么这是一种确定方法:

让带USB设备的计算机运行web服务器,如apache/php.它只听本地主机.

然后在正在查看的html页面中,执行ajax帖子到localhost/somescript.php(或cgi或cfm或其他).

在php/cgi脚本中与USB设备进行通信,然后将一个json字符串返回给浏​​览器,说明发生了什么.


更新:


另一种方法是使用自定义URL协议.您创建一个可执行文件并将其与您的自定义URL协议一起"安装"在客户端计算机上.

然后,您可以使用自定义URL协议从浏览器调用可执行文件.