Angular.js實(shí)現(xiàn)掃碼槍掃碼并生成二維碼
前言
舉個(gè)例子:
商品都有自己的序列號 SN。那么當(dāng)我們將這些商品打包的時(shí)候,我們就需要生成一份商品的 SN 清單,將其貼在箱子的表面以查看。但是冗長的序列號占位比較大,那么,我們是否可以將這些商品的序列號生成一個(gè)二維碼呢?然后,我們可以通過掃碼就知道這個(gè)箱子里面裝的是什么序列號的產(chǎn)品。
掃碼槍掃碼
這個(gè)比較簡單,首先,我們拿到掃碼槍,將其和電腦連接起來。
然后,將鼠標(biāo)光標(biāo)放在輸入框或者導(dǎo)航欄內(nèi),將掃碼槍對準(zhǔn)商品的序列號條形碼進(jìn)行掃描,相應(yīng)的內(nèi)容就會(huì)在頁面中展示出來。
本文只考慮輸入框的情況
為此,我們在頁面中構(gòu)建一個(gè)輸入框。
核心 html 代碼:
<nz-input-group [nzSuffix]="suffixIconSearch"> <input type="text" nz-input placeholder="請將鼠標(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)聽值的變化
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è)簡單的用法案例:
<!-- html --> <canvas id="qrcode"></canvas>
// javascript
window.onload = function() {
let qrcodeDom = document.getElementById('qrcode');
let canvas = bwipjs.toCanvas(qrcodeDom, {
bcid: 'datamatrix', // 碼類型
text: '110112119', // 碼內(nèi)容
scale: 3, // 縮放比例
height: 20, // 高
width: 20, // 寬
scaleX: 3, // x軸比例
scaleY: 3, // y軸比例
includetext: true, // 展示可讀的文本
textxalign: 'center' // 文本位置
});
}
相關(guān)的參數(shù)說明,我們可以直接查看 bwipjs。這里不進(jìn)行贅述。
實(shí)際上,我們使用的 bcid 類型是 qrcode 。因?yàn)樯傻倪@個(gè)二維碼我們需要添加站點(diǎn)進(jìn)去,當(dāng)用戶用手機(jī)掃描這個(gè)二維碼之后,能夠跳轉(zhuǎn)到對應(yīng)的站點(diǎn)。
感興趣的讀者可以自行嘗試驗(yàn)證。
Thanks for reading.
以上就是Angular.js實(shí)現(xiàn)掃碼槍掃碼并生成二維碼的詳細(xì)內(nèi)容,更多關(guān)于Angular.js掃碼槍掃碼生成二維碼的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
AngularJs IE Compatibility 兼容老版本IE
本文主要介紹AngularJs IE Compatibility 兼容老版本IE的問題及解決辦法,有興趣的小伙伴可以參考下2016-09-09
angular.js+node.js實(shí)現(xiàn)下載圖片處理詳解
這篇文章主要介紹了angular.js+node.js實(shí)現(xiàn)下載圖片處理的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-03-03
angular組件間通訊的實(shí)現(xiàn)方法示例
這篇文章主要給大家介紹了關(guān)于angular組件間通訊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用angular組件具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
淺談Angular.js中使用$watch監(jiān)聽模型變化
當(dāng)angular數(shù)據(jù)模型發(fā)生變化時(shí),我們需要如果需要根據(jù)他的變化觸發(fā)其他的事件。本篇文章主要介紹了Angular.js中使用$watch監(jiān)聽模型變化,有興趣的可以了解一下2017-01-01
Angular 2.0+ 的數(shù)據(jù)綁定的實(shí)現(xiàn)示例
本篇文章主要介紹了Angular 2.0+ 的數(shù)據(jù)綁定的實(shí)現(xiàn)實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
實(shí)例剖析AngularJS框架中數(shù)據(jù)的雙向綁定運(yùn)用
這篇文章主要介紹了AngularJS框架中數(shù)據(jù)的雙向綁定運(yùn)用實(shí)例,包括數(shù)據(jù)綁定中的關(guān)鍵函數(shù)與監(jiān)聽器觸發(fā)的相關(guān)講解,需要的朋友可以參考下2016-03-03
詳解Angular 4.x 動(dòng)態(tài)創(chuàng)建組件
本篇文章主要介紹了詳解Angular 4.x 動(dòng)態(tài)創(chuàng)建組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04

