首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在电子( Node.js )中连接条形码扫描仪

如何在电子( Node.js )中连接条形码扫描仪
EN

Stack Overflow用户
提问于 2017-11-13 05:10:10
回答 2查看 8.6K关注 0票数 4

我想将标准的斑马扫描仪连接到电子( node.js windows )应用程序。我想要正确地完成它,而不仅仅是设置为键盘输入。

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

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-08-23 06:03:24

仅供参考,为了让这个运行起来,我使用了https://www.npmjs.com/package/node-hid

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

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

代码语言:javascript
复制
function receiveBarcode(data){
    const barcode = data.toString('ascii').replace(/\W/g, '')
    const decodedBarcode = barcode.substring(2,barcode.length-1)
    return decodedBarcode
}   

我正在回忆这个部分--我已经记不清我是如何建造它的了。但这是我的package.json。我想电子生成器解决了我的一些构建问题。https://github.com/electron-userland/electron-builder

代码语言:javascript
复制
{
  "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"
    }
  }
}
票数 3
EN

Stack Overflow用户

发布于 2019-05-12 02:25:15

您的案例可能与设备相关,但我建议您尝试一下。我设法使条形码扫描枪与电子工作,只是简单地读取渲染过程中的keypress-events。在我的情况下,这个设备不是斑马,但如果这也适用于你的情况,我不会感到惊讶。

代码语言:javascript
复制
  let buffer = ''; // buffer for constructing the barcode from key presses

  document.addEventListener('keypress', event => {
    let data = buffer || '';
    if (event.key !== 'Enter') { // barcode ends with enter -key
      data += event.key;
      buffer = data;
    } else {
      buffer = '';
      console.log(data); // ready barcode ready for a use
    }
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47254009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档