Angular.js實(shí)現(xiàn)掃碼槍掃碼并生成二維碼
前言
舉個(gè)例子:
商品都有自己的序列號(hào) SN
。那么當(dāng)我們將這些商品打包的時(shí)候,我們就需要生成一份商品的 SN
清單,將其貼在箱子的表面以查看。但是冗長(zhǎng)的序列號(hào)占位比較大,那么,我們是否可以將這些商品的序列號(hào)生成一個(gè)二維碼呢?然后,我們可以通過(guò)掃碼就知道這個(gè)箱子里面裝的是什么序列號(hào)的產(chǎn)品。
掃碼槍掃碼
這個(gè)比較簡(jiǎn)單,首先,我們拿到掃碼槍?zhuān)瑢⑵浜碗娔X連接起來(lái)。
然后,將鼠標(biāo)光標(biāo)放在輸入框或者導(dǎo)航欄內(nèi),將掃碼槍對(duì)準(zhǔn)商品的序列號(hào)條形碼進(jìn)行掃描,相應(yīng)的內(nèi)容就會(huì)在頁(yè)面中展示出來(lái)。
本文只考慮輸入框的情況
為此,我們?cè)陧?yè)面中構(gòu)建一個(gè)輸入框。
核心 html 代碼:
<nz-input-group [nzSuffix]="suffixIconSearch"> <input type="text" nz-input placeholder="請(qǐng)將鼠標(biāo)聚焦到該點(diǎn)再使用掃碼槍掃碼" [(ngModel)]="value" (input)="changeVal()"/> </nz-input-group> <ng-template #suffixIconSearch> <span nz-icon nzType="scan"></span> </ng-template>
核心 typescript 代碼:
public value:string = ''; //輸入框的值,掃碼槍掃進(jìn)去的值 public hintValue: string = ''; // 提示信息 // 監(jiān)聽(tīng)值的變化 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
,并結(jié)合了 rxjs
生成二維碼
實(shí)現(xiàn)該功能,我們使用了包 bwipjs。這里有個(gè)簡(jiǎn)單的用法案例:
<!-- html --> <canvas id="qrcode"></canvas>
// javascript window.onload = function() { let qrcodeDom = document.getElementById('qrcode'); let canvas = bwipjs.toCanvas(qrcodeDom, { bcid: 'datamatrix', // 碼類(lèi)型 text: '110112119', // 碼內(nèi)容 scale: 3, // 縮放比例 height: 20, // 高 width: 20, // 寬 scaleX: 3, // x軸比例 scaleY: 3, // y軸比例 includetext: true, // 展示可讀的文本 textxalign: 'center' // 文本位置 }); }
相關(guān)的參數(shù)說(shuō)明,我們可以直接查看 bwipjs。這里不進(jìn)行贅述。
實(shí)際上,我們使用的 bcid
類(lèi)型是 qrcode
。因?yàn)樯傻倪@個(gè)二維碼我們需要添加站點(diǎn)進(jìn)去,當(dāng)用戶(hù)用手機(jī)掃描這個(gè)二維碼之后,能夠跳轉(zhuǎn)到對(duì)應(yīng)的站點(diǎn)。
感興趣的讀者可以自行嘗試驗(yàn)證。
Thanks for reading.
以上就是Angular.js實(shí)現(xiàn)掃碼槍掃碼并生成二維碼的詳細(xì)內(nèi)容,更多關(guān)于Angular.js掃碼槍掃碼生成二維碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Vue.js React與Angular流行前端框架優(yōu)勢(shì)對(duì)比
- Angular本地存儲(chǔ)安全分析詳解
- Angular 獨(dú)立組件入門(mén)指南
- Angular?項(xiàng)目路徑添加指定的訪(fǎng)問(wèn)前綴
- Angular 與 Component store實(shí)踐示例
- Angular實(shí)踐之將Input與Lifecycle轉(zhuǎn)換成流示例詳解
- Angular 13+開(kāi)發(fā)模式慢的原因及構(gòu)建性能優(yōu)化解析
- 詳解使用KeyValueDiffers檢測(cè)Angular對(duì)象的變化
相關(guān)文章
AngularJS基礎(chǔ) ng-model-options 指令簡(jiǎn)單示例
本文主要介紹AngularJS ng-model-options 指令,這里對(duì)ng-model-options指令的基本資料進(jìn)行整理,有需要的小伙伴可以參考下2016-08-08Angular2學(xué)習(xí)筆記之?dāng)?shù)據(jù)綁定的示例代碼
本篇文章主要介紹了Angular2學(xué)習(xí)筆記之?dāng)?shù)據(jù)綁定的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Angular 4依賴(lài)注入學(xué)習(xí)教程之InjectToken的使用(八)
這篇文章主要給大家介紹了關(guān)于Angular 4依賴(lài)注入之InjectToken使用的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Angular4具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2017-06-06angularjs實(shí)現(xiàn)上拉加載和下拉刷新數(shù)據(jù)功能
本篇文章主要介紹了angularjs實(shí)現(xiàn)上拉加載和下拉刷新數(shù)據(jù)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06詳解Angular5路由傳值方式及其相關(guān)問(wèn)題
這篇文章主要介紹了詳解Angular5路由傳值方式及其相關(guān)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04解決ng-repeat產(chǎn)生的ng-model中取不到值的問(wèn)題
今天小編就為大家分享一篇解決ng-repeat產(chǎn)生的ng-model中取不到值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10