关于hbuilder:hbuilder-混合app开发扫描二维码功能例子

46次阅读

共计 2064 个字符,预计需要花费 6 分钟才能阅读完成。

app 扫描二维码性能:

html:
<div id=”bcid”></div>

js 代码:

scan = null; // 扫描对象

// 初始化页面
mui.plusReady(function () {

mui.init({
    swipeBack: true, // 开启右滑敞开性能(默认就是 false)keyEventBind: {backbutton: true // 开启 back 按键监听(默认就是 true)}
});

var filter;
// 自定义的扫描控件款式
var styles = {frameColor: "#29E52C",scanbarColor: "#29E52C",background: "",};
// 扫描控件结构
scan = new plus.barcode.Barcode('bcid',filter,styles);  
  startRecognize();


// 调用摄像头,扫描二维码
function startRecognize() {

console.log('调用摄像头,扫描二维码')
try {
    scan.onmarked = onmarked;  // 调用 onmarked 办法
    scan.onerror = onerror;    // 调用 onerror 办法
    scan.start();

        // 关上敞开闪光灯解决
        var flag = false;
        document.getElementById("turnTheLight").addEventListener('tap',
            function() {console.log('关上敞开闪光灯解决',flag)
                if (flag == false) {scan.setFlash(true);
                    flag = true;
                } else {scan.setFlash(false);
                    flag = false;
                }
            });
    } catch (e) {alert("呈现谬误啦:\n" + e);
        scan.cancel();// 完结条码辨认
        scan.close();// 敞开条码辨认控件}

}

function onerror(e) {

console.log(e);

}

// 读取扫描数据
function onmarked(type, result) {
console.log(‘onmarked::type’, type)
console.log(‘onmarked::result’,result)
var text = ”;
switch (type) {
case plus.barcode.QR:

  text = 'QR:';
  break;

case plus.barcode.EAN13:

  text = 'EAN13:';
  break;

case plus.barcode.EAN8:

  text = 'EAN8:';
  break;

}
var equipmentCode = “”;// 寄存二维码读取的设施编码
try {

  var equipmentInfo = result;// 二维码扫描的后果
  // var str2 = equipmentInfo.split(";")[0];// 以; 分,去第一局部
  // equipmentCode = str2.split(":")[1];// 依据 str2 的内容,以:分,获取前面局部
  console.log('二维码扫描的后果',equipmentInfo)
  if(equipmentInfo!=""&&null!=equipmentInfo){if(equipmentInfo.indexOf(";")!=-1){var emquipmentInfoStr1 = equipmentInfo.split(";")[0];// 以; 分,取第一局部
          equipmentCode = emquipmentInfoStr1.split(":")[1];// 依据 str2 的内容,以:分,获取前面局部
      }else{equipmentCode = equipmentInfo.split(":")[0];// 以分,取第一局部
      }
  }

} catch (e) {

  equipmentCode = "";

}
if (equipmentCode != “” && null != equipmentCode) {// 二维码中读取设施编码不为空

  scan.cancel();// 完结条码辨认
  scan.close();// 敞开条码辨认控件
  getScanSuccess(equipmentCode);  // 获取胜利,执行办法 

} else {

  mui.alert("二维码信息谬误,请查看二维码的起源。",function end(){window.location.reload()});
  scan.cancel();// 完结条码辨认
  scan.close();// 敞开条码辨认控件 

}
}

// 扫描胜利
function getScanSuccess(equipmentCode){
console.log(‘ 扫描胜利操作 ’,equipmentCode)
}

// 退回
function returnBack() {
console.log(‘returnBack’,turnBackType)
scan.cancel();// 完结条码辨认
scan.close();// 敞开条码辨认控件

}

正文完
 0