HBuilder webApp开发(十三)二维码扫描

好久没有写《HBuilder webApp App开发》这个专栏了。这周的这两天暂时比骄没事,就对着官方文档barcode写了这个二维码扫描的Demo。
以前做原生开发的时候,关于二维码扫描、识别图片中的二维码、和二维码生成都写过。具体可以看这些:
《【iOS】AVFoundation架构下的原生二维码和条形码扫描》
《【iOS】CoreImage原生二维码生成(一)》
《【iOS】CoreImage原生二维码生成(二)一个方法生成带logo的二维码》
在做H5的APP的时候,之前也写过《HBuilder webApp开发(十一)二维码生成》
原生开发和H5的开发都写过,发现还是H5的开发代码量会少一点,但是这个就看项目是原生开发还是H5开发了。总体感觉做二维码扫描和生成不难,认真看文档,理清思路,修改官方Demo,然后测试就好了。
直接上代码,注释都在代码里面了。

<body >
    <header class="mui-bar mui-bar-nav white">
        <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
        <h1 class="mui-title">二维码扫描</h1>
    </header>
    <div class="mui-content">
        <button id="startScan" class="mui-btn mui-btn-success">开始扫描</button>
        <button id="cancelScan" class="mui-btn mui-btn-success">取消扫描</button>
        <button id="setFlash" class="mui-btn mui-btn-success">开启/关闭闪光灯</button>
        <div id= "bcid"></div>
    </div>
</body>
<script>
    mui.init({
        swipeBack:true //启用右滑关闭功能
    });
    var scan = null;
    var isOpen = false; // 闪光灯是否开始标志 true:闪光灯已经开启 false:闪光灯关闭
    // 条码识别成功事件
    function onmarked( type, 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;
        }
        alert( text+result );
    }
    // 创建扫描控件
    function startRecognize() {
        scan = new plus.barcode.Barcode('bcid');
        scan.onmarked = onmarked; 
    }
    // 开始扫描
    document.getElementById("startScan").addEventListener('tap',function(){
        startRecognize();
        scan.start();
    })
    // 取消扫描
    document.getElementById("cancelScan").addEventListener('tap',function(){
        startRecognize();
        scan.cancel();
    })
    //  开启和关闭闪光灯
    document.getElementById("setFlash").addEventListener('tap',function(){
        startRecognize();
        isOpen = !isOpen;
        if(isOpen){
            scan.setFlash(true);
        }else{
            scan.setFlash(false);
        }
    })
</script>

效果图什么的就不上了,和前面提到的文章中的效果图基本一样。
代码下载地址:请点击我!

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 25
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值