Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在electron(Node.js)中连接条形码扫描仪_Electron_Electron Builder - Fatal编程技术网

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

如何在electron(Node.js)中连接条形码扫描仪,electron,electron-builder,Electron,Electron Builder,我想将标准Zebra扫描仪连接到electron(node.js windows)应用程序。我想正确地完成它,而不仅仅是设置为键盘输入 我需要一些指导-可能已经写了一些东西(请不要商业产品) 谢谢。供您参考,我用 另外,因为我想通过网络进行广播,所以我习惯于在浏览器和条形码扫描仪之间进行通信 此外,捕获条形码有点困难。我用下面的方法得到条形码。它删除所有非单词ascii字符和返回字符串的开头。感觉有点像黑客,但它在大多数情况下都有效,除非你想在条形码中传递非标准字符。如果你找到更好的方法,请告诉

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

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


谢谢。

供您参考,我用

另外,因为我想通过网络进行广播,所以我习惯于在浏览器和条形码扫描仪之间进行通信

此外,捕获条形码有点困难。我用下面的方法得到条形码。它删除所有非单词ascii字符和返回字符串的开头。感觉有点像黑客,但它在大多数情况下都有效,除非你想在条形码中传递非标准字符。如果你找到更好的方法,请告诉我

function receiveBarcode(data){
    const barcode = data.toString('ascii').replace(/\W/g, '')
    const decodedBarcode = barcode.substring(2,barcode.length-1)
    return decodedBarcode
}   
我从记忆中回忆起这一部分——我记不清我是如何建造它的。。但这是我的package.json。我认为electron builder解决了我的一些构建问题


您的案例可能与设备有关,但我建议您尝试一下。我设法使条形码扫描器枪与Electron一起工作,只需读取渲染器进程上的
按键
-事件。在我的情况下,这个设备不是斑马,但如果这也适用于你的情况,我也不会感到惊讶

  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
    }
  });

你用这个有进展吗?我希望做同样的事情。@Dev.Wol回答如下。我只做了一个概念验证,但它似乎工作得很好——我很快就会在生产中使用它。谢谢Martin,我自己也使用了node hid。但我注意到,当从device.on('data')输出响应并转换为.toString()时,会出现一些奇怪的字符,如正方形等。您是否有类似的功能?@Dev.Wol我添加了用于提取条形码的函数。希望它有意义。我想我也使用了这个.emit('barcode',decodedBarcode),当我第一次问这个问题时,我对Nodejs还很陌生。谢谢Martin,我不得不为我的项目做一些调整,但这个概念很管用!谢谢。抱歉,最后一个问题!当你们将节点hid添加到Electron中时,当你们为生产而构建时,你们是否得到了一个并没有方向的严重错误?我相信它的节点隐藏了电子,因为当我移除节点隐藏包时,构建工作正常。不用担心@Dev.Wol-单独完成很困难,是的,我确实记得有一些问题。我现在不在那个“空间”,但我已经添加了我的package.json。。(我在windows上构建)我认为electron重建包解决了我的问题。我对node gyp有一些问题,但它在不使用的情况下就开始构建,可能一切都好。在这种情况下,你只是像使用键盘一样使用条形码扫描仪,但你无法区分键盘。如果您使用了正确的驱动程序,那么只有条形码数据才会通过。如上所述,因为我的扫描仪没有驱动程序。我设置了一个前缀来对扫描的关键事件进行排序。效果很好。
  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
    }
  });