<div v-if="saomashow">
<div id="bcid">
<!--盛放扫描控件的div-->
</div>
<div class="mui-bar mui-bar-footer" style="padding: 0px;">
<div class="fbt">
<span class="mui-icon" id="turnTheLight">闪光灯</span>
</div>
<div class="fbt" id="quxiao">取 消</div>
</div>
</div>
<script>
function printsaoma() {
var height = (window.innerHeight - 100) + 'px'; //获取页面实际高度
var width = window.innerWidth + 'px';
document.getElementById("bcid").style.height = height;
document.getElementById("bcid").style.width = width;
const button = document.getElementById('quxiao')
scan = null; //扫描对象
mui.plusReady(function() { //通过mui初始化扫描
mui.init();
startRecognize();
});
function startRecognize() { //开启扫描
try {
var filter;
//自定义的扫描控件样式
var styles = {
frameColor: "#29E52C",
scanbarColor: "#29E52C",
background: ""
}
//扫描控件构造
// scan = new plus.barcode.Barcode('bcid', filter, styles);
//扫码类型
scan=new plus.barcode.Barcode('bcid',["QR","EAN13","EAN8","CODE39"],{frameColor:"#40CEA8",scanbarColor:"#40CEA8"});
scan.onmarked = onmarked;
scan.onerror = onerror; //扫描错误
scan.start();
//打开关闭闪光灯处理
var flag = false;
document.getElementById("turnTheLight").addEventListener('tap', function() {
if (flag == false) {
scan.setFlash(true);
flag = true;
} else {
scan.setFlash(false);
flag = false;
}
});
} catch (e) {
alert("出现错误啦:\n" + e);
}
};
function onerror(e) { //错误弹框
alert(e);
};
function onmarked(type, result) { //这个是扫描二维码的回调函数,type是扫描二维码回调的类型
var text = '';
switch (type) { //QR,EAN13,EAN8都是二维码的一种编码格式,result是返回的结果
case plus.barcode.QR:
text = 'QR: ';
break;
case plus.barcode.EAN13:
text = 'EAN13: ';
break;
case plus.barcode.EAN8:
text = 'EAN8: ';
break;
case plus.barcode.EAN39:
text = 'EAN39: ';
break;
case plus.barcode.CODE128:
text = 'CODE128: ';
break;
case plus.barcode.CODE39:
text = 'CODE39: ';
break;
}
scan.close();
window.saomanum(result)
};
// 添加点击事件监听器
button.addEventListener('click', function(event) {
scan.close();
window.saomanum()
});
}
<script>