hwScanner
来自于:APICloud 官方立即使用
模块概述
简介
华为统一扫码服务(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。开发者只需要提供字符串、码制式和尺寸要求即可获得相应的码图。
隐私声明,参考华为官网文档------隐私声明
模块简述
hwScanner 模块封装了华为的统一扫码服务(HUAWEI Scan Kit)。
注意:使用本模块前,需在云编译页面勾选添加访问摄像头权限,若要访问相册也需沟通申请访问相册权限
本模块封装了两套扫码方案:
方案一
开发者通过调用 defaultScanner 接口直接打开自带默认 UI 效果的二维码/条形码扫描页面,本界面相当于打开一个 window 窗口,其界面内容不支持自定义。用户可在此界面实现功能如下:
从系统相册选取二维码/条码图片进行解密操作
打开摄像头,自动对焦扫码想要解析的二维码/条码
方案二
通过 customizedScanner 接口打开一个自定义大小的扫描区域(本区域相当于打开一个 frame)进行扫描。开发者可自行 open 一个 frame 贴在模块上,从而实现自定义扫描界面的功能。然后配合使用showCustomizedScanner、switchLight 等接口实现开关闪光灯、重设扫描界面位置大小、图片解码、字符串编码等相关功能。详情请参考模块接口参数。
注意:
iOS端最低适配版本为iOS11.0
模块接口
defaultScanner
打开自带默认 UI 效果的二维码/条形码扫描页面,本界面相当于打开一个 window 窗口,其界面内容不支持自定义
defaultScanner({params}, callback(ret))
params
sound:
- 类型:字符串
- 描述:(可选项)扫描结束后的提示音文件路径,要求本地路径(fs://、widget://),为保证兼容性,推荐使用 wav 格式的短音频文件 (仅iOS支持)
formatType:
- 类型:字符串
- 描述:(可选项) 二维码与一维码的类型
- 默认值:ALL
- 取值范围:
- ALL:扫描所有条码类型。
- UPC_E:UPC-E条码类型。
- UPC_A:UPC-A条码类型。
- QR_CODE:QR code二维码类型。
- QR_CODEQR_CODE:PDF417二维码类型。
- ITF:ITF-14条码类型。
- EAN_13:EAN-13条码类型。
- EAN_8:EAN-8条码类型。
- DATA_MATRIX:Data Matrix二维码类型。
- CODE_128:Code 128条码类型。
- CODE_93:Code 93条码类型。
- CODE_39:Code 39条码类型。
- CODABAR:Code Bar条码类型。
- AZTEC:AZTEC二维码类型。
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;扫码事件类型
result: '' //字符串类型;扫码结果
}
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.defaultScanner({
formatType: 'ALL'
}, function(ret) {
if (ret) {
api.alert({msg:JSON.stringify(ret)});
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
scanPictureDirect
直接识别图片
scanPictureDirect({params}, callback(ret))
params
imagePath:
- 类型:字符串
- 描述:要识别的图片路径,要求本地路径(fs://)
formatType:
- 类型:字符串
- 描述:(可选项) 二维码与一维码的类型
- 默认值:ALL
- 取值范围:
- ALL:扫描所有条码类型。
- UPC_E:UPC-E条码类型。
- UPC_A:UPC-A条码类型。
- QR_CODE:QR code二维码类型。
- PDF_417:PDF417二维码类型。
- ITF:ITF-14条码类型。
- EAN_13:EAN-13条码类型。
- EAN_8:EAN-8条码类型。
- DATA_MATRIX:Data Matrix二维码类型。
- CODE_128:Code 128条码类型。
- CODE_93:Code 93条码类型。
- CODE_39:Code 39条码类型。
- CODABAR:Code Bar条码类型。
- AZTEC:AZTEC二维码类型。
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;扫码事件类型
result: '' //字符串类型;扫码结果
}
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.scanPictureDirect({
formatType: 'ALL',
imagePath:'widget://res/123.png'
}, function(ret) {
if (ret) {
api.alert({msg:JSON.stringify(ret)});
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
customizedScanner
打开可自定义的二维码/条形码扫描器
customizedScanner({params}, callback(ret))
params
rect:
- 类型:JSON 对象
- 描述:(可选项)扫描器的位置及尺寸
- 内部字段:
{
x: 0, //(可选项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;模块的宽度;支持设置'auto';默认:所属的 Window 或 Frame 的宽度
h: 480 //(可选项)数字类型;模块的高度;支持设置'auto';默认:所属的 Window 或 Frame 的高度
}
rectOfInterest:
- 类型:JSON 对象
- 描述:(可选项)在扫码区域上的扫码识别区域
- 内部字段:
{
x: 0, //(可选项)数字类型;扫码识别区域左上角的 x 坐标(相对于扫码区rect);默认:0
y: 0, //(可选项)数字类型;扫码识别区域左上角的 y 坐标(相对于扫码区rect);默认:0
w: 200, //(可选项)数字类型;扫码识别区域的宽度;默认:扫码区rect的宽度
h: 200 //(可选项)数字类型;扫码识别区域的高度;默认:扫码区rect的高度
}
sound:
- 类型:字符串
- 描述:(可选项)扫描结束后的提示音文件路径,要求本地路径(fs://、widget://),为保证兼容性,推荐使用 wav 格式的短音频文件(仅iOS支持)
formatType:
- 类型:字符串
- 描述:(可选项) 二维码与一维码的类型
- 默认值:ALL
- 取值范围:
- ALL:扫描所有条码类型。
- UPC_E:UPC-E条码类型。
- UPC_A:UPC-A条码类型。
- QR_CODE:QR code二维码类型。
- PDF_417:PDF417二维码类型。
- ITF:ITF-14条码类型。
- EAN_13:EAN-13条码类型。
- EAN_8:EAN-8条码类型。
- DATA_MATRIX:Data Matrix二维码类型。
- CODE_128:Code 128条码类型。
- CODE_93:Code 93条码类型。
- CODE_39:Code 39条码类型。
- CODABAR:Code Bar条码类型。
- AZTEC:AZTEC二维码类型。
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
fixed:
- 类型:布尔
- 描述:(可选项)模块是否随所属 window 或 frame 滚动
- 默认值:true(不随之滚动)
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;扫码事件类型
result: '' //字符串类型;扫码结果
}
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.customizedScanner({
}, function(ret) {
if (ret) {
api.alert({msg:JSON.stringify(ret)});
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
closeCustomizedScanner
关闭自定义大小的二维码/条码扫描器
closeCustomizedScanner()
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.closeCustomizedScanner();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
hideCustomizedScanner
关闭自定义大小的二维码/条码扫描器
hideCustomizedScanner()
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.hideCustomizedScanner();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
showCustomizedScanner
显示自定义大小的二维码/条码扫描器
showCustomizedScanner()
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.showCustomizedScanner();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
encodeContent
将字符串生成二维码/条形码图片
encodeContent({params}, callback(ret))
params
formatType:
- 类型:字符串
- 描述:(可选项) 二维码与一维码的类型
- 默认值:AZTEC
- 取值范围:
- ALL:所有条码类型。
- UPC_E:UPC-E条码类型。
- UPC_A:UPC-A条码类型。
- QR_CODE:QR code二维码类型。
- PDF_417:PDF417二维码类型。
- ITF:ITF-14条码类型。
- EAN_13:EAN-13条码类型。
- EAN_8:EAN-8条码类型。
- DATA_MATRIX:Data Matrix二维码类型。
- CODE_128:Code 128条码类型。
- CODE_93:Code 93条码类型。
- CODE_39:Code 39条码类型。
- CODABAR:Code Bar条码类型。
- AZTEC:AZTEC二维码类型。
content:
- 类型:字符串
- 描述:所要生成的二维码/条形码字符串
size:
- 类型:JSON 对象
- 描述:(可选项)生成图片的大小
- 内部字段:
{
w: 200, //(可选项)数字类型;生成图片的宽度,默认:200
h: 200 //(可选项)数字类型;生成图片的高度,默认:200
}
backgroundColor:
- 类型:字符串类型
- 描述(可选项)码图背景颜色(仅android支持)
- 默认:‘#ffffff’
bitmapColor
- 类型:字符串类型
- 描述:(可选项)码图颜色(仅android支持)
- 默认:‘#000000’
margin
- 类型:数字类型
- 描述:(可选项)码图边框宽度(仅android支持)
- 默认:1
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔型;是否生成成功
imagePath: '', //字符串类型;需要保存的二维码图片绝对路径
}
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.encodeContent({
content: 'http://www.apicloud.com/',
size: {
w: 200,
h: 200
}
}, function(ret, err) {
if (ret.status) {
api.alert({msg:JSON.stringify(ret)});
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
switchLight
打开/关闭闪光灯(在Android上,已打开扫码视图时有效)
switchLight({params})
params
status:
- 类型:字符串
- 描述:(可选项)打开/关闭闪光灯,默认值:'off'
- 取值范围:
- on(打开)
- off(关闭)
示例代码
var hwScanner = api.require('hwScanner');
hwScanner.switchLight({
status: 'on'
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本