html5 二维码扫描

实现打开摄像头扫描二维码的js

//二维码
function qrcodeOpen() {
	setTimeout(function(){
		backBz = "2";
	    $('div[class="scrollbox zzjgx"]').hide();
    	startRecognize();
        scan.start();
    },350);
	
}
function startRecognize() {
	scan = new plus.barcode.Barcode('bcid');
	scan.onmarked = onmarked;
}
function onmarked(type, result, file) {

	switch (type) {
		case plus.barcode.QR:
			type = 'QR';
			break;
		case plus.barcode.EAN13:
			type = 'EAN13';
			break;
		case plus.barcode.EAN8:
			type = 'EAN8';
			break;
		default:
			type = '其它' + type;
			break;
	}
	var resultresult = result.replace(/\n/g, '');
	setLocStorage("codeLoc",resultresult);
	scan.close();
};	

调用部分js

var lid = null;
var scan = null;
var backBz = "1";
//二维码、条形码扫描
function openScanner(callback){
		qrcodeOpen(); 
		subscribeMQ("codeLoc",function(codel){
			if(codel != null&&codel != ""){
				callback(codel);
				console.log(codel);
				stopMQ("codeLoc");
			}
		});
				 
}

工具js

//locstorage赋值
function setLocStorage(key,val){ 
	window.localStorage.setItem(key, val);
   // appcan.locStorage.setVal(key,val);  
}
//获取locstorage值
function getLocStorage(key){     
//    var val=appcan.locStorage.getVal(key);
	var val=window.localStorage.getItem(key)
    return val;   
}
//删除locstorage值
function removeLocStorage(key){
    if(!key){
		localStorage.clear();
        //appcan.locStorage.remove();
    }else{
		localStorage.removeItem(key);
      // appcan.locStorage.remove(key); 
    }
}

//自定义消息队列_监听
function subscribeMQ(MQNo,callBack) {
	lid = setInterval(function(){
		var NoMQ = getLocStorage(MQNo);
			if(NoMQ != null && NoMQ != ""){
				if(NoMQ == "msg"){
				    callBack();
					removeLocStorage(MQNo);
				 //   setLocStorage(MQNo,null);
				}else{
				    callBack(NoMQ);
					removeLocStorage(MQNo);
				//    setLocStorage(MQNo,null);
				}
				
			}
	}, 1000);
}
//自定义消息队列_发送
function publishMQ(MQNo,msgMQ) {
	setLocStorage(MQNo,msgMQ);
}		 
//自定义消息队列_停止监听
function stopMQ(MQNo) {
	int=window.clearInterval(lid)
	window.localStorage.removeItem(MQNo)
}
	

以上js放到一个公用的js里面调用

哪个页面使用的话,可以就像下面这个js一样调用。

当点击id为scanner2触发事件,code就是扫描得到的结果。

以上代码是可以使用的。。

        //二维码扫描
$("#scanner2").on('tap',function(){	
               openScanner(function(code){
               var data={};
               data.zfhtzdh=code;
                doJsonRequest(checkboxRFIDDetailUrl,data,function(reData){
				   window.localStorage.setItem("checkboxDetailData", reData);
				   window.location.href = "checkboxDetail.html";
                },'GET'); 
            });
       });
       

猜你喜欢

转载自blog.csdn.net/liuno0/article/details/102620307