我已经写在HTML5和JavaScript的UI。 我选择了这个实施,使我可以分享的Android浏览器和Windows RT 8在两者之间的相同的代码。
现在,我的下一个目标是将数据写入到一个USB HID。 我正在与被视为一个HID通信的设备。 我提到这部分的情况下,有写的HID设备,而不是一个USB RAW设备的方式。
我已经做了很多的研究此事。 但是,在HTML5规范正在发生变化如此频繁,也许我错过了什么。
不管怎么说,能有人建议语言或实现,我可以用它来共享公共代码来访问Android和Windows 8 RT一个USB设备? 如果没有在两者之间共享的方式,怎么样建议,获取仅适用于Android USB通信?
下面是我用的结论一起研究:
Silverlight的:不支持。 在Web插件而言,不支持在Windows 8 RT或Android
快讯:可能的选项。 支持两种操作系统,虽然他们除去支持Android Jelly Bean系统的释放
HTML5:不支持
- 看着游戏手柄API,但它似乎只支持从手柄阅读
- 看着设备标签,但该标签在目前的草案不再存在。 我读了“导航”对象替换它在Javascript,但似乎完全不同。 此外,设备只针对获得的视频和音频
JavaScript的:不支持。 从我的理解,这是因为它会带来安全隐患。
Chrome封装应用:不支持。 不确定在Windows 8 RT的支持。 但是,它不是在Android的Chrome浏览器的支持,无论是。
- 一个USB API存在实现正是我需要的,但API只提供给打包应用程序
Java小程序:不支持。 不确定在Windows 8 RT的支持。 但是,它不是在Android的Chrome浏览器的支持,无论是。
- 关于如何与USB设备进行通信提供了许多资源。 然而,由于Java小程序不支持在智能手机上,这最终是不支持的。
一对夫妇有用的帖子
- 如何发送和在asp.net接收数据串口或USB端口?
- 正在访问从跨浏览器跨OS可能在所有的Web应用程序的USB?
- 这有可能提供的JavaScript API来控制USB,LPT,COM设备?
其实我已经想好怎么做的事情与此类似....
这里的是一种方式肯定的方式来做到这一点,如果你有过的已连接USB设备的计算机控制:
与USB设备的计算机上运行一个Web服务器,如Apache / PHP。 有它只是听本地主机。
然后,在被查看的HTML页面,执行AJAX后到localhost / somescript.php(或CGI或CFM或其他)。
在PHP / CGI脚本传送到USB设备,然后返回一个JSON字符串到浏览器说事情发生。
更新:
另一种方法是使用自定义URL协议。 您创建一个可执行文件,并在客户端计算机上使用您的自定义URL协议沿着“安装”了。
然后,你可以调用使用您的自定义URL协议的浏览器可执行文件。
还有一个替代的Web Socket.Create网络套接字服务器将访问USB设备在本地系统。
连接使用Web插槽Web服务器从网页Application.Web插座有标准的API
你可以做这样的事情
var host = "wss://localhost:25000/test";
Websokcet ws = new WebSocket(host);
您可以使用RFC您的Web服务器sokcet 6455
对于旧的浏览器,你能想到的HTTP服务器的为好。
请看看JSFS。 它的工作原理类似于Chris_vr的方法,并已经是一个可行的解决方案。
https://github.com/jsfsproject/jsfs 。 它是免费的GPL许可。
如果你想控制USB设备条形码打印机,你可以使用jZebra
https://code.google.com/p/jzebra/
这是一个applet直接在本地连接的打印机进行通信。
这个怎么样?
写串行端口:
var writeSerial=function(str) {
chrome.serial.write(connectionId, str2ab(str), onWrite);
}
// Convert string to ArrayBuffer
var str2ab=function(str) {
var buf=new ArrayBuffer(str.length);
var bufView=new Uint8Array(buf);
for (var i=0; i<str.length; i++) {
bufView[i]=str.charCodeAt(i);
}
return buf;
}
更在http://developer.chrome.com/apps/app_hardware.html
文章来源: Write data to USB HID using Javascript, HTML5, or any cross platform language (supports Android)