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

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();//敞开条码辨认控件

}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理