实现打开摄像头扫描二维码的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');
});
});