更新记录
1.0.0(2026-02-06)
Added
- 首个正式可用版本发布。
- 新增 OCR 初始化接口
initOcr(),支持aksk与license双鉴权模式。 - 新增扫描识别接口
scanOcr(),支持:general(通用文字)idcard_front(身份证人像面)idcard_back(身份证国徽面)bankcard(银行卡)
- 新增图片识别接口
recognizeOcr(),支持指定本地图片路径识别。 - 新增日志控制接口
setOcrLogEnabled()/isOcrLogEnabled()。 - 新增统一错误码体系(
9020001~9020008)和错误对象封装。
Platform
- Android:支持,最低
API 21。 - iOS:支持,最低
iOS 12.0。 - HarmonyOS:当前不支持(调用返回
9020007)。
Dependencies
- HBuilderX
>= 3.6.8 - uni-app x
>= 3.1.0 - Android 依赖:
androidx.core:core:1.10.1、androidx.annotation:annotation:1.7.1 - iOS 依赖:
AVFoundation、CoreMedia、Photos等系统 Frameworks
Security & Privacy
- 需要相机权限(Android)与相机/相册权限(iOS)。
- AK/SK 与 License 涉及敏感凭据,需由业务方自行安全保管。
Notes
- iOS 模拟器不支持百度 OCR 原生能力,请使用真机调试。
- 调用
scanOcr()、recognizeOcr()前必须先调用initOcr()。 - License 文件默认名为
aip.license。
平台兼容性
uni-app(4.87)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | - | - | - | - | √ | √ | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.87)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | √ | √ | - | - |
hans-baidu-ocr(uni-app x / UTS 插件)
基于百度 OCR SDK 的 uni-app x 插件,支持 App-Android / App-iOS,提供 AK/SK 与 License 两种鉴权方式。
平台兼容性
| 平台 | 支持状态 | 最低版本要求 | 备注 |
|---|---|---|---|
| Android | ✅ 支持 | Android 5.0(API 21) | 可用 scanOcr / recognizeOcr |
| iOS | ✅ 支持 | iOS 12.0 | 仅真机,模拟器返回 9020007 |
| HarmonyOS | ❌ 暂不支持 | - | 当前实现返回 9020007 |
| 微信小程序/H5 | ❌ 不支持 | - | 非 App 平台 |
运行环境要求:
- HBuilderX
>= 3.6.8 - uni-app x
>= 3.1.0
能力概览
- 鉴权初始化:
initOcr() - 扫描识别:
scanOcr()(拉起百度 OCR 拍照 UI) - 图片识别:
recognizeOcr()(输入本地图片路径) - 调试能力:
setOcrLogEnabled()/isOcrLogEnabled() - 结果结构:标准化
words/fields,并返回raw原始 JSON
安装
将插件放到项目目录:uni_modules/hans-baidu-ocr/。
导入方式:
import { initOcr, scanOcr, recognizeOcr } from '@/uni_modules/hans-baidu-ocr'
快速开始
1) 初始化(AK/SK)
import { initOcr } from '@/uni_modules/hans-baidu-ocr'
initOcr({
mode: 'aksk',
ak: '你的AK',
sk: '你的SK',
success: (res) => console.log('init ok', res),
fail: (err) => console.error('init fail', err)
})
2) 初始化(License,推荐)
- 下载百度授权文件,命名为
aip.license(或使用licenseName指定)。 - 将文件放到项目原生资源目录(请勿提交到 Git):
- Android:
nativeResources/android/assets/aip.license - iOS:
nativeResources/ios/Resources/aip.license
- Android:
- 调用初始化:
initOcr({
mode: 'license',
licenseName: 'aip.license'
})
3) 调起拍照 UI 并自动识别
import { scanOcr } from '@/uni_modules/hans-baidu-ocr'
scanOcr({
type: 'general', // 'general' | 'idcard_front' | 'idcard_back' | 'bankcard'
autoRecognize: true,
detectDirection: false,
success: (res) => {
console.log(res.imagePath)
console.log(res.recognize)
}
})
4) 识别指定图片路径
import { recognizeOcr } from '@/uni_modules/hans-baidu-ocr'
recognizeOcr({
type: 'general_basic',
imagePath: '/path/to/your.jpg',
detectDirection: false,
success: (res) => {
console.log(res.words)
console.log(res.fields)
console.log(res.raw)
}
})
5) 日志开关
import { setOcrLogEnabled, isOcrLogEnabled } from '@/uni_modules/hans-baidu-ocr'
setOcrLogEnabled(true)
console.log('ocr log enabled:', isOcrLogEnabled())
API 说明
initOcr(options)
用于初始化 OCR 引擎与鉴权,建议在应用启动后尽早调用。
mode:'aksk' | 'license'ak/sk:当mode='aksk'时必填licenseName:当mode='license'时可选,默认aip.license- 回调:
success/fail/complete
scanOcr(options)
拉起 SDK 扫描页拍照并可选自动识别。
type:'general' | 'idcard_front' | 'idcard_back' | 'bankcard'autoRecognize:是否拍照后自动调用识别,默认truedetectDirection:仅在general时生效,默认false
返回:
imagePath:拍照后的本地文件路径recognize:当autoRecognize=true时返回识别结果
recognizeOcr(options)
对本地图片路径执行识别。
type:'general_basic' | 'idcard_front' | 'idcard_back' | 'bankcard'imagePath:本地图片路径(支持file://前缀)detectDirection:仅general_basic场景有意义
返回字段:
words:通用识别时的文本数组fields:结构化字段(身份证/银行卡)raw:SDK 原始 JSON 字符串
权限与隐私
权限
- Android:
android.permission.CAMERA - iOS:
NSCameraUsageDescription、NSPhotoLibraryUsageDescription
插件已提供 iOS 权限描述模板:utssdk/app-ios/info.plist。
数据与合规说明
aksk模式会调用百度云鉴权接口。- OCR 识别相关数据由百度 OCR SDK 处理,请确保你的隐私政策已向用户告知。
- 请勿在仓库中提交
AK/SK、license、证书等敏感信息。
错误码
| 错误码 | 含义 | 常见场景 | 建议 |
|---|---|---|---|
9020001 |
未初始化/未鉴权 | 未先调用 initOcr |
先初始化再识别 |
9020002 |
参数错误 | type / imagePath 无效 |
检查参数值 |
9020003 |
鉴权失败 | AK/SK 或 License 异常 | 校验凭据和文件 |
9020004 |
识别失败 | 图像质量低或 SDK 返回失败 | 更换清晰图片重试 |
9020005 |
用户取消 | 扫描页主动取消 | 业务上可忽略 |
9020006 |
权限被拒绝 | 相机权限被拒绝 | 引导用户开启权限 |
9020007 |
平台不支持 | Harmony/iOS 模拟器 | 使用支持平台/真机 |
9020008 |
内部异常 | 原生异常或运行态错误 | 打开日志并排查 |
错误处理示例:
import { initOcr, type OcrFail } from '@/uni_modules/hans-baidu-ocr'
initOcr({
mode: 'aksk',
ak: 'your-ak',
sk: 'your-sk',
fail: (err: OcrFail) => {
if (err.errCode == 9020003) {
console.error('鉴权失败,请检查 AK/SK 或 License')
return
}
console.error('OCR 初始化失败', err.errCode, err.errMsg)
}
})
已知限制
- iOS 模拟器不支持百度 OCR 原生能力,请使用真机调试。
- HarmonyOS 当前为占位实现,接口会返回不支持错误。
- 调用
scanOcr、recognizeOcr前必须先完成initOcr。
更新日志
详见 changelog.md。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 238
赞赏 0
下载 11213464
赞赏 1856
赞赏
京公网安备:11010802035340号