javascript - 从 EPOS 浏览器发送数据 USB 端口

标签 javascript google-chrome browser usb controls

这个问题很棘手,我不确定它能否得到解决。

我正在开发一个完全在浏览器(首选 Google Chrome)中运行的 EPOS 系统

一些客户提到了在他们完成销售时显然需要它能够打开收银台抽屉。

用户按下“保存销售”按钮(顺便说一句,它使用 AJAX 提交,所以如果 Javascript 可以在解决方案中使用,那会很方便!)然后生成发票 PDF。在按下按钮时,为了实现我们需要的功能,我需要能够向 USB 端口发送脉冲以触发收银台抽屉上的螺线管。

浏览器是否有可能以这种方式与 USB 端口通信?

如果可能的话,对此的扩展还包括启用一项功能,也可以通过 USB 将交易总额发送到信用卡终端。

环顾四周,我怀疑,我需要创建一个小软件,用户将其下载到他们的本地机器,然后浏览器与之通信,这个本地应用程序与 USB 通信,但我是恐怕我不知道从哪里开始。

非常感谢任何指示、教程或帮助!

提前致谢

编辑:

我发现了这个: https://developer.chrome.com/apps/app_usb

但我认为我说这只适用于我正在开发 Chrome 应用程序而不是在 Chrome 中运行的网站是正确的吗?

最佳答案

如评论中所述,您可以设置在客户端上运行的本地服务器。该服务器应具有访问 USB 端口的适当权限。

我所说的“服务器”并不是指像 nginx 这样的网络服务器,而是指具有特定用途的应用程序。该应用程序的确切语言无关紧要,但它必须提供一个 USB 库。示例跨平台库:

这意味着您必须自己实现 USB 设备驱动程序。如果您的客户端已经有一个程序(例如,eject-drawer.exe)或不同的 API/接口(interface)(例如 /dev/theEPOSdevice),请尝试使用这些抽象。如果 USB 设备适合某个设备类别,您还可以选择使用为该类别量身定制的库。对于 USB HID,您可以使用 HIDAPI(python bindingnode.js library)。

假设客户端服务器在 http://localhost:8080/ 上运行,而您的网络应用程序在 http://app.example.com/ 上运行。您有一些通信选项:

  • localhost:8080 上设置适当的 CORS header 并使用“常规 AJAX”调用。
  • app.example.com 的 iframe 中加载 localhost:8080 并使用 postMessage促进跨域通信的 API。

最后一部分并不是特别困难,您可能会在前半部分花费一些时间来连接 USB 设备。祝你好运!

关于javascript - 从 EPOS 浏览器发送数据 USB 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822801/

相关文章:

.net - 有没有办法将 C++ 代码编译为 Microsoft .Net CIL(字节码)?

css - 引用 SVG 符号和 CSS 尺寸时的 View 框放置

javascript - 如何使用 lodash 从现有的对象数组生成新的对象数组

javascript - 限制路由到 Express 和 Nodejs 中的静态文件

javascript - array.pop()的返回值;

css - 当轮廓样式为自动时,轮廓偏移不会应用于 Chrome/Windows

javascript - DefinitelyTyped for JQuery 插件

javascript - 如何调试网站上按钮的功能?

linux - Chrome Kiosk 模式会忽略缩放设置

c# - ResponseCache 在网络核心 3.1 中不起作用