更新记录
1.0.1(2026-01-30)
- docs: readme 精简为使用文档
1.0.0(2026-01-20)
init
平台兼容性
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-paddle-ocr
uni-app x UTS 插件:本地离线 OCR(静态图片识别)。
- Android:Paddle Lite + OpenCV(离线 PaddleOCR 推理)
- iOS:系统 Vision 文本识别(离线;后续再替换为 Paddle Lite + OpenCV 的 PaddleOCR 全链路)
- 纯离线:不依赖网络、不上传图片/文本
平台支持
uni-app x:app-android/app-ios- Android:
minSdkVersion=21,ABI:armeabi-v7a/arm64-v8a - iOS:
iOS 13+(依赖 Vision) - Harmony:暂不支持(会返回
9010199 not supported on this platform)
安装
插件以 uni_modules 形式使用:
- 在 HBuilderX 插件市场安装,或把
hans-paddle-ocr目录放到项目uni_modules/下 - 在业务代码里通过
@/uni_modules/hans-paddle-ocr引入 API
使用示例(uni-app x / uvue)
import {
initPaddleOcr,
recognizePaddleOcr,
releasePaddleOcr,
setLogEnabled,
PaddleOcrInitOptions,
PaddleOcrRecognizeOptions
} from '@/uni_modules/hans-paddle-ocr'
// 可选:关闭插件内部日志(默认开启)
setLogEnabled(false)
initPaddleOcr({
numThreads: 2,
enableCls: true,
success: () => console.log('init ok'),
fail: (e) => console.error('init fail', e)
} as PaddleOcrInitOptions)
// 典型输入:用 uni.chooseImage 获取临时图片路径(res.tempFilePaths[0])
// const imagePath = res.tempFilePaths[0]
recognizePaddleOcr({
imagePath: '/absolute/path/to/image.jpg',
detLongSize: 960,
scoreThreshold: 0.5,
success: (res) => console.log(res.text, res.lines, res.elapsedMs),
fail: (e) => console.error('rec fail', e)
} as PaddleOcrRecognizeOptions)
releasePaddleOcr()
API 说明
以 uni_modules/hans-paddle-ocr/utssdk/interface.uts 为准:
initPaddleOcr(options)recognizePaddleOcr(options)releasePaddleOcr()isPaddleOcrInitialized()(同步)setLogEnabled(true|false):控制插件内部console.info/(Android)原生console.log输出(默认开启)isLogEnabled()(同步)
initPaddleOcr(options)
modelDir?: string:模型目录(绝对路径)。为空使用插件内置模型(首次运行会自动释放到可读写目录)numThreads?: number:线程数(默认2)enableCls?: boolean:是否启用方向分类(默认true)useGpu?: boolean:是否使用 GPU(默认false;当前实现可能忽略该参数)success/fail/complete
如指定 modelDir,目录下需包含(相对路径):
models/ch_PP-OCRv2/det_db.nbmodels/ch_PP-OCRv2/rec_crnn.nbmodels/ch_PP-OCRv2/cls.nb(关闭enableCls时可不加载)labels/ppocr_keys_v1.txt
recognizePaddleOcr(options)
imagePath: string:图片路径(file://或本地绝对路径;Android 也支持content://)detLongSize?: number:det 输入长边(默认960)scoreThreshold?: number:置信度阈值(默认0.5,建议范围0~1)success(res)/fail/complete
返回 PaddleOcrResult:
text: string:全文(按行用\n拼接)lines: PaddleOcrLine[]:逐行结果(含text/score/box)elapsedMs?: number:耗时(毫秒)
错误码
fail 回调参数为 PaddleOcrFail(符合 uni 错误对象规范),常见 errCode:
9010101:not initialized(未初始化)9010102:invalid image path(图片路径无效/不可读)9010103:model load failed(模型加载失败)9010104:recognize failed(识别失败)9010199:unknown / not supported(未知/平台不支持)
注意事项
- 先
initPaddleOcr再recognizePaddleOcr;不用时调用releasePaddleOcr - 仅支持本地图片(不支持直接传网络 URL);可配合
uni.chooseImage获取临时路径 - Android:如果遇到
loadLibrary(paddle_lite_jni) failed,需要使用“自定义基座”运行(标准基座不会包含插件原生 so)

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