更新记录
1.0.5(2026-09-15) 下载此版本
- 【功能增强】新增完整示例页面:
- 新增
example/OcrDemo.vue:包含完整的 OCR 识别示例 - 涵盖权限申请、引擎初始化、图片选择、文字识别、结果导出等完整流程
- 提供美观的 UI 界面和详细的使用说明
- 支持 Mock 模式和真实识别模式切换
- 新增
- 【文档完善】新增快速使用指南:
- 新增
example/QUICK_START.md:详细的快速开始文档 - 提供两种集成方式(示例页面/API调用)
- 详细说明模型配置步骤
- 包含常见问题解答和调试技巧
- 新增
- 【性能优化】修复 Harmony 引擎图片读取逻辑:
- 优化
recognizeImage方法中的 ArrayBuffer 分配策略 - 动态计算文件大小,避免固定 10MB buffer 导致的内存浪费
- 使用
fs.statSync获取真实文件大小,合理分配 buffer - 确保大图片(超过 10MB)也能正确读取
- 优化
1.0.4(2026-09-14) 下载此版本
- 修复 app-android/app-ios/app-harmony 三端
engine.uts中读取options.imagePath的错误:官方 UniImageFile 类型的字段是path,读取imagePath永远是 undefined,导致 OCR 无结果 - 修复
parseResult输出 schema 与 UniOcrBlock 类型不一致的问题:统一改为{ text, score, box: { x, y, w, h } },与 DCloud 类型保持一致 - permission-manager 重写:移除返回 null 的
getActivity()调用 - permission-manager 优先使用
uni.requestPermission/uni.openAppAuthorizeSetting openHarmonySettings实现完整(之前为空函数)- app-harmony 端增加 BusinessError 处理,避免 OCR 异常吞掉
readme.md更新为新版本 API 文档
1.0.3(2026-03-20) 下载此版本
-修复:ios打包路径问题
查看更多平台兼容性
uni-app(4.45)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 5.0 | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
鸿蒙Next+Android+iOS 离线OCR文字识别 UTS插件
离线 OCR UTS 插件:鸿蒙 Next 通过系统内置 Core Vision Kit 文字识别;Android/iOS 基于 MNN 3.2.0 + PaddleOCR ch_PP-OCRv4_light。统一 API、自动模型下载、断点续传、相机/相册/存储权限引导,无网无广告无数据采集。
核心特性
- 三端完整支持:鸿蒙Next、Android、iOS 全平台
- 离线识别:鸿蒙Next 通过 Core Vision Kit 系统内置能力;Android/iOS 基于 MNN 3.2.0 + PaddleOCR ch_PP-OCRv4_light 本地推理
- 统一 API:三端相同接口
- 权限引导:自动申请相机/相册/存储权限,拒绝后给出引导
- 统一的返回结构:
UniOcrResult { text, blocks[{ text, score, box{x,y,w,h} }], raw }
安装
HBuilderX 中
工具 → 插件安装 → 市场 → 搜索「鸿蒙Next+Android+iOS 离线OCR文字识别 MNN3.2.0 UTS插件」并安装。
依赖要求
- 鸿蒙 Next:依赖系统内置
Core Vision Kit - Android:
libMNN.so(armeabi-v7a / arm64-v8a),来自 MNN-3.2.0-android.zip - iOS:
MNN.framework(arm64 / x86_64),来自 MNN-3.2.0-ios.zip
API
init(options): Promise<void>
初始化 OCR 引擎。
| 字段 | 类型 | 说明 |
|---|---|---|
| modelPath | string | MNN 模型本地路径(必填,鸿蒙可省略) |
| vocabPath | string | 可选,字典/标签文件 |
| threads | number | 推理线程数(默认 2) |
| lowPower | boolean | 低功耗模式 |
| mock | boolean | 是否启用 Mock(示例工程无需模型即可运行) |
recognizeImage(options): Promise<UniOcrResult>
识别本地图片。options.path 为必填图片路径。
export(result, format): string
format 支持 'text' / 'json'。
downloadModel(modelInfo, ): Promise<boolean>
模型下载,支持进度回调。
checkModelStatus(modelPath): Promise<boolean> / deleteModel(modelPath): Promise<boolean>
模型存在性检查与删除。
requestPermission(type): Promise<PermissionStatus>
权限类型:'camera' | 'album' | 'storage'。
openAppSettings(): void
打开应用设置页面,用于权限被永久拒绝时的引导。
使用示例
import { uniOcrOfflineHarmony } from '@/uni_modules/zy-ocr-tool/utssdk/index.uts';
// 1. 申请权限
const camera = await uniOcrOfflineHarmony.requestPermission('camera');
if (!camera.granted) {
uniOcrOfflineHarmony.openAppSettings();
return;
}
// 2. 初始化引擎
await uniOcrOfflineHarmony.init({
modelPath: '_doc/models/ch_PP-OCRv4_light.mnn',
threads: 2,
// mock: true, // 示例工程可开启,省去模型准备
});
// 3. 下载模型(首次)
const ok = await uniOcrOfflineHarmony.downloadModel(
{
name: 'ch_PP-OCRv4_light',
url: 'https://your.cdn.com/ch_PP-OCRv4_light.mnn',
localPath: '_doc/models/ch_PP-OCRv4_light.mnn',
},
(progress) => console.log('下载进度:', progress + '%')
);
// 4. 识别
const result = await uniOcrOfflineHarmony.recognizeImage({
path: '_doc/photo.jpg',
structured: false,
});
console.log('全文:', result.text);
console.log('文字块:', result.blocks);
// 5. 导出
const json = uniOcrOfflineHarmony.export(result, 'json');
三端适配说明
鸿蒙Next
- 通过 Core Vision Kit 的
textRecognition系统能力,无需模型 - 利用 NPU 硬件加速
Android
- 封装
libMNN.so(armeabi-v7a / arm64-v8a) - 图片预处理:缩放 640×480 + 灰度化
iOS
- 封装
MNN.framework(arm64 / x86_64) - 图片预处理:缩放 640×480 + 灰度化(Core Image)
模型转换
./mnnconvert --framework Paddle --modelFile ch_PP-OCRv4_det_infer/model.pdmodel --paramFile ch_PP-OCRv4_det_infer/model.pdiparams --MNNModel det.mnn --bizCode MNN
./mnnconvert --framework Paddle --modelFile ch_PP-OCRv4_rec_infer/model.pdmodel --paramFile ch_PP-OCRv4_rec_infer/model.pdiparams --MNNModel rec.mnn --bizCode MNN
./mnnmerge det.mnn rec.mnn ch_PP-OCRv4_light.mnn
权限说明
插件运行时申请相机 / 相册 / 存储权限,被永久拒绝时调用 openAppSettings() 引导用户手动开启。
许可证
- 插件本身:MIT
- MNN:MIT
- PaddleOCR:Apache 2.0
更新日志
1.0.4(2026-09-13)
- 完善 displayName/description/keywords
- 三端引擎
recognizeImage改为读取options.path(之前错误读取options.imagePath,调用方传path会被作为 undefined,导致识别必定失败) - 统一三端
parseResult输出 schema:blocks 使用{ text, score, box{x,y,w,h} },与UniOcrBlock类型保持一致 UniOcrResult增加raw字段透传原始输出,便于调试与二次处理- 重写
permission-manager.uts:优先使用uni.requestPermission/uni.openAppAuthorizeSetting,避免依赖不存在的getActivity()兜底函数 - 修复
openHarmonySettings之前为空实现的问题 - 错误信息容错:所有 catch 分支统一处理
Error与BusinessError,避免(error as Error).message在 unknown 异常上 NPE - 模型下载 iOS 路径明确进度回调尚不支持(注释说明)
- 鸿蒙引擎使用
BusinessError提取友好错误信息

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(5)
下载 321
赞赏 5
下载 12607568
赞赏 1949
赞赏
京公网安备:11010802035340号