Harmony API 概览

最近更新时间:2025-11-24 11:22:11

我的收藏



智能扫码授权接口

类定义

export class QBarAuth


属性

licenseInfo: string - 获取授权信息字符串。


静态方法

auth(secretID: string, secretKey: string): Promise<QBarAuth>

在线授权验证流程:
1. 尝试从本地缓存读取 license 并验证。
2. 如果本地验证失败,则从服务器获取最新 license。
3. 保存获取到的 license 到本地缓存。
4. 返回授权对象。

参数:
secretID: 应用密钥 ID
secretKey: 应用密钥
返回:Promise<QBarAuth> - 授权对象
可能抛出:
QBarError: 网络错误或授权验证失败


authOffline(license: string): Promise<QBarAuth>

离线授权验证流程:
1. 解密传入的 license 字符串。
2. 验证 license 的有效性。

参数:
license: 离线授权字符串
返回:Promise<QBarAuth> - 授权对象
可能抛出:
QBarError: 解密失败或授权验证失败


智能扫码控制器接口

枚举定义

export enum QBarMode {
MODE_VIDEO_ONCE = 0, // 视频单次识别模式
MODE_VIDEO_CONTINUE = 1, // 视频连续识别模式
MODE_FILE = 2 // 文件识别模式
}


接口定义

QBarListener

export interface QBarListener {
onZoom?: (factor: number) => void // 缩放回调
onInfo?: (info: QBarInfo[]) => void // 识别结果回调
}


QBarConfig

export interface QBarConfig {
mode: number // 运行模式,使用QBarMode枚举值
listener: QBarListener // 事件监听器
maxCodeNumber?: number // 最大识别码数量(默认3)
}


QBarInfo

export interface QBarInfo {
result_info: QBarResult // 识别结果信息
detect_info: QBarDetectInfo // 检测位置信息
}


QBarResult

export interface QBarResult {
data: string // 二维码内容数据
typeName: string // 二维码类型名称
charset: string // 字符编码格式
}


QBarDetectInfo

export interface QBarDetectInfo {
points: QBarPoint[] // 二维码四个角点坐标数组
}


QBarPoint

export interface QBarPoint {
x: number // X坐标
y: number // Y坐标
}


类定义

export class QBarController


静态方法

create(config: QBarConfig): QBarController

功能描述:创建二维码识别控制器实例。
参数说明:
config:配置参数
返回:QBarController 实例
可能抛出:
QBarError:初始化失败错误


实例方法

scan(img: ArrayBuffer, w: number, h: number): void

功能描述:扫描图像进行二维码识别,仅支持 NV21 格式的数据。
MODE_VIDEO_CONTINUE 和 MODE_VIDEO_ONCE 模式下需要多次调用此接口将数据从相机传入 SDK。
MODE_FILE 模式调用一次传入图像数据即可。
参数说明:
img: 图像数据缓冲区
w: 图像宽度
h: 图像高度


done(err?: QBarError): void

功能描述:手动结束识别过程,调用此接口会使内部流程结束,不传 err 正常结束;传入 err 后 promise 会将此 err 抛出到业务层。
当传入错误时错误码请使用 CUSTOM 以防止和内部已有的错误产生冲突。
参数说明:
err: 可选错误对象


属性

promise: Promise<QBarInfo[]>

功能描述:获取识别结果的 Promise 对象。


智能扫码默认界面接口

接口定义

QBarViewConfig

export interface QBarViewConfig {
zoomFactor?: number // 缩放因子,值越大越灵敏,设置为0则无法通过双指放缩屏幕
onBack?: () => void // 返回按钮回调,页面上点击返回按钮后调用
onDone?: (info: QBarInfo) => void // 识别完成回调
onError?: (err: QBarError) => void // 错误回调
}


函数

@Builder export function QBarView(config: QBarViewConfig)

功能描述:创建默认识别界面。


智能扫码错误接口

枚举定义

export enum QBarErrorCode {
UNKNOWN = -1, // 未知错误
USER_CANCEL = -2, // 用户取消
LICENSE_CHECK_FAILED = -3, // 许可证检查失败
NETWORK_NOT_CONNECT = -4, // 网络错误
SERVER_RESPONSE_ERROR = -5, // 服务器错误
PACKAGENAME_MISMATCH = -6, // 包名不匹配
PACKAGESIGN_MISMATCH = -7, // 包签名不匹配
LICENSE_EXPIRE = -8, // 许可证过期
LICENSE_NOT_APPROVED = -9, // 许可证未批准
NOT_AUTH = -10, // 未授权
NO_CAMERA_PERMISSION = -11, // 没有相机权限
OPEN_CAMERA_FAILED = -12, // 打开相机失败
OFFLIE_LICENSE_DECRYPT_FAILED = -13, // 离线证书解密失败
PLATFORM_MISMATCH = -9, // 证书平台不匹配
CUSTOM = -100 // 自定义错误
}


类定义

export class QBarError implements BusinessError<void> {
name: string = '' // 错误名称
code: number = 0; // 错误码,使用QBarErrorCode枚举值
message: string = ''; // 错误信息
inner_error?: Error; // 内部错误对象(可选)

constructor(c: number, m: string, i?: Error) {
this.code = c
this.message = m
this.inner_error = i
}
}