这篇文章主要讲解了“Angular.js如何实现扫码枪扫码并生成二维码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Angular.js如何实现扫码枪扫码并生成二维码”吧!
扫码枪扫码
这个比较简单,首先,我们拿到扫码枪,将其和电脑连接起来。
然后,将鼠标光标放在输入框或者导航栏内,将扫码枪对准商品的序列号条形码进行扫描,相应的内容就会在页面中展示出来。
本文只考虑输入框的情况
为此,我们在页面中构建一个输入框。
核心 html 代码:
<nz-input-group [nzSuffix]="suffixIconSearch"> <input type="text" nz-input placeholder="请将鼠标聚焦到该点再使用扫码枪扫码" [(ngModel)]="value" (input)="changeVal()"/> </nz-input-group> <ng-template #suffixIconSearch> <span nz-icon nzType="scan"></span> </ng-template>
核心 typescript 代码:
public value:string = ''; //输入框的值,扫码枪扫进去的值 public hintValue: string = ''; // 提示信息 // 监听值的变化 public changeVal():void { this.interval$.unsubscribe(); // rxjs 的 interval 方法 this.valTimer && clearTimeout(this.valTimer); this.valTimer = setTimeout(() => { this.hintValue = '添加中...' this.scanQRCode(); clearTimeout(this.valTimer); }, 500) }
这里我们使用了
ant design angular,并结合了
rxjs
生成二维码
实现该功能,我们使用了包 bwipjs。这里有个简单的用法案例:
<!-- html --> <canvas id="qrcode"></canvas>
// javascript window.onload = function() { let qrcodeDom = document.getElementById('qrcode'); let canvas = bwipjs.toCanvas(qrcodeDom, { bcid: 'datamatrix', // 码类型 text: '110112119', // 码内容 scale: 3, // 缩放比例 height: 20, // 高 width: 20, // 宽 scaleX: 3, // x轴比例 scaleY: 3, // y轴比例 includetext: true, // 展示可读的文本 textxalign: 'center' // 文本位置 }); }
相关的参数说明,我们可以直接查看 bwipjs。这里不进行赘述。
实际上,我们使用的
bcid类型是
qrcode。因为生成的这个二维码我们需要添加站点进去,当用户用手机扫描这个二维码之后,能够跳转到对应的站点。