- 需求背景:
公司项目是化学试剂管理相关,需要在试剂页面根据扫描枪扫描到的条形码(试剂ID)打开相应试剂的详情页。 - 扫描枪原理:
刚开始接触扫描枪,就去网上查了下,查到的是扫描枪实质就是一个输入设备,每次输入完默认以回车键结尾。相当于键盘输入,和手工输入不同的是,它每两个字符产生的间隔只有几毫秒到几十毫秒(一般为20ms内,我看网上好多代码设置的都是30ms,我测试后用的是是50ms,原因后面我再说。),这也是代码接收扫描枪数据的大概原理。 - 代码片段:
接收扫描枪的逻辑代码是从CSDN上面找的,顺便在此感谢!由于我们项目用的是Angular框架,我就把它改为Angular风格了
// 导入事件
import {
EventManager } from '@angular/platform-browser';
// 声明销毁监听事件的变量
export class TestComponent implements OnInit, OnDestroy {
destroyListener:any;
}
// 注册事件
constructor(
private eventManager:EventManager
){
}
// ngOnInit中添加键盘监听事件
ngOnInit() {
let barcode = "";
let lastTime = null, nextTime;
let lastCode = null, nextCode;
this.destroyListener = this.eventManager