customizedScanner closeCustomizedScanner showCustomizedScanner hideCustomizedScanner switchLight scanPictureDirect
华为统一扫码服务(HUAWEI Scan Kit)提供便捷的条形码和二维码扫描、解析、生成能力,帮助您快速构建应用内的扫码功能。 得益于华为在计算机视觉领域能力的积累,Scan Kit可以实现远距离码或小型码的检测和自动放大,同时针对常见复杂扫码场景(如反光、暗光、污损、模糊、柱面)做了针对性识别优化,提升扫码成功率与用户体验。Scan Kit支持Android和iOS系统集成。其中,Android系统的支持横屏扫码能力。
Scan Kit支持扫描13种全球主流的码制式。如果您的应用只处理部分特定的码制式,您也可以在接口中指定制式以便加快扫码速度。已支持的码制式: 一维码:EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF 二维码:QR Code、Data Matrix、PDF417、Aztec
Scan Kit支持将字符串转换为一维码或二维码,目前已支持的码制式为EAN-8、EAN-13、UPC-A、UPC-E、Codabar、Code 39、Code 93、Code 128、ITF、QR Code、Data Matrix、PDF417、Aztec。开发者只需要提供字符串、码制式和尺寸要求即可获得相应的码图。
隐私声明,参考华为官网文档------隐私声明
QRScan 插件封装了华为的统一扫码服务(HUAWEI Scan Kit)。
注意:使用本插件前,需在应用打包页面勾选添加访问摄像头权限,若要访问相册也需沟通申请访问相册权限
通过 customizedScanner 接口打开一个自定义大小的扫描区域(本区域相当于打开一个 frame)进行扫描。开发者可自行定义相关响应事件及扫描线样式 。详情请参考插件接口参数。
注意:
iOS端最低适配版本为iOS11.0
直接识别图片
scanPictureDirect({params}, callback(ret))
imagePath:
formatType:
ret:
{
status: true, //布尔类型;扫码事件类型
result: '' //字符串;扫码结果
}
var QRScan = api.require('QRScan');
QRScan.scanPictureDirect({
formatType: 'ALL',
imagePath:'widget://res/123.png'
}, function(ret) {
if (ret) {
api.alert({msg:JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
打开可自定义的二维码/条形码扫描器
customizedScanner({params}, callback(ret))
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;插件的宽度;支持设置'auto';默认:所属的 Window 或 Frame 的宽度
h: 480 //(可选项)数字类型;插件的高度;支持设置'auto';默认:所属的 Window 或 Frame 的高度
}
rectOfInterest:
{
x: 0, //(可选项)数字类型;扫码识别区域左上角的 x 坐标(相对于扫码区rect);默认:0
y: 0, //(可选项)数字类型;扫码识别区域左上角的 y 坐标(相对于扫码区rect);默认:0
w: 200, //(可选项)数字类型;扫码识别区域的宽度;默认:扫码区rect的宽度
h: 200 //(可选项)数字类型;扫码识别区域的高度;默认:扫码区rect的高度
}
scanLine:
{
color: 0, //(可选项)字符串类型;颜色值,支持rgba、rgb、#;默认:#ff0000
thickness: 0, //(可选项)数字类型;粗细;默认:1
}
isShowClose:
closeButton:
{
image:'', //(可选项)字符串类型;图片路径,仅支持widget
size: 24, //(可选项)数字类型;图标大小
left: 8, //(可选项)数字类型;左边边距
top:8 //(可选项)数字类型;顶部边距
}
maskColor:
tipString:
marginB:
sound:
formatType:
fixedOn:
fixed:
ret:
{
eventType:, //字符串类型;交互事件类型,取值范围:
//close:关闭事件
//torchOn:闪光灯打开
//torchOff:闪光灯关闭
//scan:扫描到目标图码
result: '' //字符串;扫码结果,仅当eventType 为 scan 时有值
}
var QRScan = api.require('QRScan');
QRScan.customizedScanner({
rect: {
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 375, //(可选项)数字类型;插件的宽度;支持设置'auto';默认:所属的 Window 或 Frame 的宽度
h: 420 //(可选项)数字类型;插件的高度;支持设置'auto';默认:所属的 Window 或 Frame 的高度
},
rectOfInterest: {
x: 64, //(可选项)数字类型;扫码识别区域左上角的 x 坐标(相对于扫码区rect);默认:0
y: 65, //(可选项)数字类型;扫码识别区域左上角的 y 坐标(相对于扫码区rect);默认:0
w: 250, //(可选项)数字类型;扫码识别区域的宽度;默认:扫码区rect的宽度
h: 250 //(可选项)数字类型;扫码识别区域的高度;默认:扫码区rect的高度
},
//tipString:'放入框内扫码',
maskColor:'rgba(0,0,0,0.5)',
scanLine:{
color:'#00FF00',
thickness:2
},
marginB:30,
sound: 'fs://res/222.mp3',
formatType:'ALL'
}, function (ret) {
if (ret) {
//api.alert({ msg: JSON.stringify(ret) });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭自定义大小的二维码/条码扫描器
closeCustomizedScanner()
var QRScan = api.require('QRScan');
QRScan.closeCustomizedScanner();
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭自定义大小的二维码/条码扫描器
hideCustomizedScanner()
var QRScan = api.require('QRScan');
QRScan.hideCustomizedScanner();
iOS系统,Android系统
可提供的1.0.0及更高版本
显示自定义大小的二维码/条码扫描器
showCustomizedScanner()
var QRScan = api.require('QRScan');
QRScan.showCustomizedScanner();
iOS系统,Android系统
可提供的1.0.0及更高版本
打开/关闭闪光灯(在Android上,已打开扫码视图时有效)
switchLight({params})
status:
var QRScan = api.require('QRScan');
QRScan.switchLight({
status: 'on'
});
iOS系统,Android系统
可提供的1.0.0及更高版本