本文主要包含mui扫描二维码,mui分享功能,mui搜索功能,mui内置地图导航功能,mui实现下拉刷新等相关知识,教程希望在学习及工作中可以帮助到您
");
</div>
开发手机APP时经常需要用到扫描二维码/条码的功能,在使用MUI框架开发时,我们可以使用H5plus封装好的Barcode类。Barcode模块管理条码扫描,提供常见的条码(二维码及一维码)的扫描识别功能,可调用设备的摄像头对条码图片扫描进行数据输入。通过plus.barcode可获取条码码管理对象。
具体可参照官方文档:http://www.dcloud.io/docs/api/zh_cn/barcode.shtml
该类的主要方法:
1、通过图片扫描条码数据:
void plus.barcode.scan( path, successCB, errorCB,filters );
2、开始条码识别:
void bc.start( options );
3、结束条码识别:
void bc.cancel();
4、是否开启闪光灯
void obj.setFlash( open );
5、条码识别成功事件
void obj.onmarked = function ( type, code, file ) {
//loaded code
}
下面我讲述下我们项目中用到的情况及一些注意事项。
1、创建Barcode对象,须指定Barcode对象的在界面中关联div或object标签的id号;
2、Barcode会加载在Webview的最顶层,并且无法隐藏,只有关闭Webview时Barcode才会自动关闭;
3、可通过filters参数设置需要支持条码类型,设置类型越少越能提高扫描效率。
如果需要使用复杂的组合,可以将Webview作为其它Webview的子窗口,子窗口中包含Barcode,当子窗口隐藏时Barcode也会隐藏。
由于Barcode附属于Webview上,并且只有在Webview关闭时才自动销毁的特点,我在项目中使用一个Webview来加载Barcode,并将条码扫描方法封装成公共API供外部调用,
Webview中定义以下事件:
具体可参照官方文档:http://www.dcloud.io/docs/api/zh_cn/barcode.shtml
该类的主要方法:
1、通过图片扫描条码数据:
void plus.barcode.scan( path, successCB, errorCB,filters );
2、开始条码识别:
void bc.start( options );
3、结束条码识别:
void bc.cancel();
4、是否开启闪光灯
void obj.setFlash( open );
5、条码识别成功事件
void obj.onmarked = function ( type, code, file ) {
//loaded code
}
下面我讲述下我们项目中用到的情况及一些注意事项。
1、创建Barcode对象,须指定Barcode对象的在界面中关联div或object标签的id号;
2、Barcode会加载在Webview的最顶层,并且无法隐藏,只有关闭Webview时Barcode才会自动关闭;
3、可通过filters参数设置需要支持条码类型,设置类型越少越能提高扫描效率。
如果需要使用复杂的组合,可以将Webview作为其它Webview的子窗口,子窗口中包含Barcode,当子窗口隐藏时Barcode也会隐藏。
由于Barcode附属于Webview上,并且只有在Webview关闭时才自动销毁的特点,我在项目中使用一个Webview来加载Barcode,并将条码扫描方法封装成公共API供外部调用,
Webview中定义以下事件:
- //开始扫描事件
- doc.addEventListener('startScan',function(event) {
- if(scan) {
- startScan(event.detail.notClose);
- }
- });
- //停止扫描事件
- doc.addEventListener('endScan',function() {
- if(scan) {
- scan.cancel();
- }
- });
- VarflashOpen=false;
- // 开启闪光灯事件
- doc.addEventListener('setFlash',function() {
- if(scan) {
- flashOpen= !flashOpen;
- scan.setFlash(flashOpen);
- }
- });
并定义以下方法:
- function startScan(notClose) {
- _notClose = notClose;
- //若是需要将结果返回文件
- scan.start({
- conserve: true,
- filename: _filePath
- });
- }
- functioninitScan(view) {
- //var filter = [plus.barcode.CODE128, plus.barcode.EAN13];
- //var scan = new plus.barcode.Barcode('divReg');
- scan = new plus.barcode.Barcode(view /*, filter*/ );
- scan.onmarked = onmarked;
- }