如何在 Electron ( Node.js ) 中连接条码扫描仪

Mar*_*son 6 electron electron-builder

我想将标准 Zebra 扫描仪连接到电子(node.js windows)应用程序。我想正确地做到这一点,而不仅仅是设置为键盘输入。

我需要一些指导 - 也许已经写了一些东西(请不要商业产品)

谢谢。

Mar*_*son 3

仅供参考,为了实现这一点,我使用了https://www.npmjs.com/package/node-hid

另外,因为我想通过网络广播它,所以我使用https://www.npmjs.com/package/isomorphic-ws在浏览器和条形码扫描仪之间进行通信。

此外,捕获条形码也是一个挑战。我使用以下方法来获取条形码。它删除所有非单词 ascii 字符以及返回字符串的开头。感觉有点像黑客,但它在大多数情况下都应该有效,除非您想在条形码中传递非标准字符。如果您找到更好的方法,请告诉我!

function receiveBarcode(data){
    const barcode = data.toString('ascii').replace(/\W/g, '')
    const decodedBarcode = barcode.substring(2,barcode.length-1)
    return decodedBarcode
}   
Run Code Online (Sandbox Code Playgroud)

我凭记忆回忆起这一部分 - 我不记得我是如何构建它的..但这是我的 package.json 。我认为电子构建器解决了我的一些构建问题。https://github.com/electron-userland/electron-builder

{
  "name": "zimpla.device.manager",
  "version": "1.0.0",
  "main": "main.js",
  "dependencies": {
    "electron-log": "^2.2.14",
    "electron-settings": "^3.1.4",
    "moment": "^2.21.0",
    "node-hid": "^0.7.2",
    "serialport": "^6.1.1",
    "ws": "^5.0.0"
  },
  "scripts": {
    "start": "electron .",
    "debug": "electron --inspect=5858 .",
    "install": "electron-rebuild",
    "postinstall": "electron-rebuild --force -m . -w node-hid && electron-builder install-app-deps",
    "pack": "electron-builder --dir",
    "dist": "build"
  },
  "devDependencies": {
    "electron": "latest",
    "electron-builder": "^20.4.1",
    "electron-rebuild": "^1.7.3"
  },
  "build": {
    "appId": "zimpla.device.manager",
    "win": {
      "target": "nsis"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)