我想将标准的斑马扫描仪连接到电子( node.js windows )应用程序。我想要正确地完成它,而不仅仅是设置为键盘输入。
我需要一些指导-也许已经写了一些东西(请不要商业产品)
谢谢。
发布于 2018-08-23 06:03:24
仅供参考,为了让这个运行起来,我使用了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
}
我正在回忆这个部分--我已经记不清我是如何建造它的了。但这是我的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"
}
}
}
发布于 2019-05-12 02:25:15
您的案例可能与设备相关,但我建议您尝试一下。我设法使条形码扫描枪与电子工作,只是简单地读取渲染过程中的keypress
-events。在我的情况下,这个设备不是斑马,但如果这也适用于你的情况,我不会感到惊讶。
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
}
});
https://stackoverflow.com/questions/47254009
复制相似问题