H5+ 二维码扫描功能


二维码在生活中的使用越来越广泛,APP开发中,也越来越多的需求需要用到二维码的扫描功能,以下就针对h5+的二维码扫描功能做一些简单的介绍;

1. var bc = new plus.barcode.Barcode( id, filters, styles ); 创建二维码扫描对象

id: 条码识别控件在Webview窗口的DOM节点的id值

filters: 要识别的条码类型过滤器,为条码类型常量数组,条码识别引擎可支持多种二维码及一维码类型,默认情况支持QR、EAN13、EAN8三种类型。

styles :

- frameColor: )扫描框颜色

- scanbarColor:扫描条颜色

- background: (String 类型 )条码识别控件背景颜色


2. bc.start( options ); 开始条码识别

options:条码识别控件扫描条码的参数

- conserve: 是否保存成功扫描到的条码数据时的截图

- filename: 保存成功扫描到的条码数据时的图片路径

- vibrate:成功扫描到条码数据时是否需要震动提醒

- sound:成功扫描到条码数据时播放的提示音类型 可取值: “none” - 不播放提示音; “default” 播放默认提示音(5+引擎内置)


3. bc.cancel(); 结束条码识别


- bc.close(); 关闭条码识别控件,释放控件占用系统资源,调用close方法后控件对象将不可使用。

- bc.setFlash( true); 是否开启闪光灯

- 条码识别成功回调
bc.onmarked = function ( type, code, file ) {

}

- type:识别到的条码类型 Number类型的值

- code:识别到的条码数据 从条码图片中扫描出的数据内容,字符串采用UTF8编码格式。

- file:识别到的条码图片文件路径


7. 条码识别失败 回调函数
bt.onerror = function ( error ) {

}

常见问题:
1.二维码扫描成功之后,当再次返回到扫描界面的时候,不能重新进行扫描;
原因:扫描成功之后,扫描界面已经变成了扫描成功的状态,当你再次但回到这个界面的时候,依然记录的是之前扫描成功的状态,所以不能再次进行扫描;
解决办法:在扫描成功之后强制刷新界面;

var bc = new plus.barcode.Barcode('barcode');
bc.setFlash(false);
bc.onmarked=function(type, result){//扫描成功
    plus.webview.show('barcodeSucceed','pop-in',100);
    mui.fire(plus.webview.getWebviewById('barcodeSucceed'),'showResult'{result:result});
    window.setTimeout(function(){
            plus.webview.currentWebview().reload();
    },1000);
}
bc.start();


二维码扫描Demo 包含常见问题的解决办法下载

你可能感兴趣的:(安卓开发,Dcloud移动端跨平台开发,前端)