更新记录
2.0.0(2026-10-19)
首个基于 UTS + uni-app x 蒸汽模式的版本,相对旧版原生插件的变化:
新增
- 全平台统一
interface.uts接口契约,三端(Android / iOS / HarmonyOS)API 完全一致 - TypeScript 解析内核:14 种证件的字段抽取与校验位校验
- 身份证 GB 11643 校验位、15 位升 18 位
- VIN ISO 3779 校验位、I/O/Q 形近字纠正
- 银行卡 Luhn + BIN 发卡行识别(30+ 常见银行)
- 统一社会信用代码 GB 32100 校验位
- 置信度评分:由 OCR 行置信度与关键字段命中率加权,校验通过额外加分
warnings字段:字段缺失、校验失败等可解释提示recognizeImageFile:单图识别,便于自定义相机 UIgetEngineStatus/preloadEngine:引擎状态查询与预热- 示例工程内置「真机自检」,可验证解析内核是否随包正确编译
- 84 项自动化测试(校验算法、字段抽取、配置校验、源码静态检查)
变更
- 原生层只负责取景、拍照与文字识别,字段抽取下沉到 TS 层,保证跨端结果一致
- 扫描界面重写:CameraX + 自定义扫描框 + 自动抓拍(文本/车牌/VIN/电话/电动车牌)
keepImage: false时不再返回已删除的图片路径,imagePath返回空串- 默认参数调整:
showBeep默认false,showVibrate默认true
兼容
uTSOCRRecognize/uTSOCRAblumRecognize/getBase64FromFilePath名称与参数保持兼容recognizeType0~13 取值与旧版一致
已知限制
- HarmonyOS 版仅支持图片识别(
recognizeImageFile/ 相册),原生取景界面暂未提供 - 蒸汽模式要求 HBuilderX 5.21+(Android)/ 5.11+(iOS)
平台兼容性
uni-app(5.12)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | √ | - | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(5.24)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 | 蒸汽模式 |
|---|---|---|---|
| × | × | × | √ |
ai-ocr 离线 OCR 识别插件
Android / iOS 双端离线文字与证件识别。所有识别在设备本地完成,不联网、不上传、不采集数据。
特性
- 完全离线:Android 使用 ML Kit 中文识别与 HyperLPR3 车牌专用模型(均随包,无需下载);iOS 使用系统 Vision 框架(零额外体积)
- 14 种识别场景:通用文本、身份证正反面、车牌、银行卡、营业执照、自定义证件、社保卡、发票、车架号 VIN、机动车登记证书、电话号码、电动车牌、登机牌
- 内置校验:身份证 / VIN / 银行卡 Luhn / 统一社会信用代码 校验位算法,校验结果参与置信度计算
- 容错解析:全角转半角、汉字间空格折叠、形近字纠正(O↔0、I↔1)、跨行住址拼接
- 蒸汽模式:适配 uni-app x Vapor 渲染,
.uvue页面性能优于原生
平台支持
| 平台 | 支持 | 最低版本 | 引擎 |
|---|---|---|---|
| Android | 是 | 6.0 (API 23) | ML Kit Chinese + HyperLPR3 (车牌) |
| iOS | 是 | 15.0 | Apple Vision |
| HarmonyOS | 图片识别 | API 20 | Core Vision Kit |
| Web / 小程序 | 否 | - | - |
CPU 架构:Android arm64-v8a、armeabi-v7a;iOS arm64。
测试效果
汇总 55 条 Android 测试用例、51 张不同原图,包含失败用例。结果页截图为已保存真机识别输出在示例 App 中的回放。
查看 / 下载高清大图(4800×33494,约 14.2 MiB)

安装
- 将
uni_modules/ai-ocr复制到项目uni_modules目录 manifest.json中声明相机与相册权限(见下)- 必须制作自定义基座,标准基座不包含 UTS 原生插件
权限
Android(AndroidManifest.xml 已内置,App 侧无需重复声明):
android.permission.CAMERA
android.permission.VIBRATE
android.permission.FLASHLIGHT
android.permission.READ_MEDIA_IMAGES
android.permission.READ_EXTERNAL_STORAGE (maxSdkVersion=32)
iOS(Info.plist 已内置):
NSCameraUsageDescription
NSPhotoLibraryUsageDescription
基本用法
import { uTSOCRRecognize } from '@/uni_modules/ai-ocr'
uTSOCRRecognize({
recognizeType: 1,
showPhotoAlbum: true,
showLightController: true,
showVibrate: true,
success: (res) => {
// res.lines 是原始文本行,交给 js_sdk/parsers.ts 抽取字段
console.log(res.lines.map(l => l.text).join('\n'))
},
fail: (err) => {
console.error(err.errCode, err.errMsg)
},
complete: (res) => {}
})
字段抽取:
import { parseDocument } from '@/uni_modules/ai-ocr/js_sdk/parsers.ts'
const doc = parseDocument(1, res.lines)
// doc.fields.name / doc.fields.idNumber / doc.confidence / doc.warnings
完整 API 见 docs/API.md。
错误码
| 码 | 含义 |
|---|---|
| 1001 | 相机权限未授予 |
| 1002 | 相册权限未授予 |
| 1003 | 相机初始化失败 |
| 1004 | 识别引擎初始化失败 |
| 1005 | 模型文件加载失败 |
| 1006 | 识别超时 |
| 1007 | 图片读取失败 |
| 1008 | 不支持的识别类型 |
| 1009 | 用户取消 |
| 1010 | 设备不支持 |
| 1011 | 参数错误 |
| 1012 | 正在识别中 |
| 1013 | 内存不足 |
常见问题
Q:标准基座报「插件不存在 / 方法未定义」? A:UTS 原生插件必须使用自定义基座,请重新制作并运行到自定义基座。
Q:Android 识别速度慢?
A:首次识别会初始化 ML Kit 模型,可在 App.uvue 的 onLaunch 调用 preloadEngine() 预热。
Q:需要 PaddleOCR 而不是 ML Kit?
A:见 docs/BUILD.md 的「替换 OCR 引擎」一节,模型与 aar 放入 utssdk/app-android/libs 与 assets 即可,接口无需改动。
隐私
插件不含任何网络请求与埋点;识别图片仅写入应用私有缓存目录,可通过 keepImage: false 关闭。
Android 相机车牌入口仅识别可见框内区域,支持蓝牌、绿牌、黄牌。普通七位号码不能单凭文字判断蓝黄底色;图片引擎没有给出底色时返回空颜色并提示核对。iOS / HarmonyOS 仍使用原文字引擎,不包含本次专用模型和相机裁框改动。

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 15
赞赏 0
下载 12693039
赞赏 1956
赞赏
京公网安备:11010802035340号