/vue-plugin-scanner

vue插件,实现不需要input输入框的情况下网页监听扫码枪扫码结果

Primary LanguageJavaScript

基于VUE的插件,实现无需输入框得情况下网页监听扫码枪扫码结果

原理

可以把扫码枪看成一个类似键盘的输入设备,能够同等触发按键事件,给document添加keypress事件,该事件可以获取到按键对应的keyCode,然后通过keyCode获取到对应的字符,最后拼接在一起就OK了!

全局安装

import scanner from './install';
Vue.use(scanner);

使用

export default {
  data () {
    return {
      items:[],             //扫码结果
      isStart:false         //是否开启扫码
    }
  },
  methods:{
    startScannerHandler(e){
      e.target.blur();      //按钮对象失去焦点,扫码会默认带一个Enter键,会再次触发click
      if(!this.isStart){
        this._scanner=this.$scanner({callback:v=>{
          this.items.push(v);
        }});
      }else{
        this._scanner.cancel();
      }
      this.isStart=!this.isStart;
    }
  }
}