更新记录

1.0.0(2026-04-03)

  • 首发:提供相册选图与拍照识别能力,返回全文、文本块及边界框坐标。
  • 支持中文、英文及快速/高精度识别模式。
  • Android 侧基于 ML Kit,iOS 侧基于 Vision,均为端侧识别。
  • 提供能力探测与同步查询接口,并统一错误码便于兼容与排障。

平台兼容性

uni-app(3.7.3)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(4.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - -

本地OCR文字识别 UTS 插件 Android/iOS版

插件介绍

这是一个基于 UTS 的 uni-app OCR 插件,当前支持 Android 和 iOS。

插件内置端侧识别能力:

  • Android:Google ML Kit
  • iOS:Apple Vision

适合以下场景:

  • 图片文字提取
  • 拍照识别文字
  • 快递单号、订单号、设备编号识别
  • 文档拍照录入
  • OCR 文本高亮与定位展示

插件特点:

  • 纯端侧识别,无需后端
  • 无需第三方云 API
  • uni-app / uni-app x 统一调用方式
  • 支持返回文本块坐标
  • 支持中文、英文
  • 支持快速 / 高精度模式

当前版本仅支持 Android / iOS。 HarmonyOS 目录已预留适配结构,但默认未启用,不属于本版本支持范围。

支持平台

平台 状态
Android 支持
iOS 支持
HarmonyOS 暂未开放
H5 不支持
小程序 不支持

安装方式

将插件放入项目目录:

uni_modules/local-ocr-lite

然后在页面或业务代码中直接引入:

import {
  recognizeImage,
  recognizeFromCamera,
  getSupportInfoSync,
  isSupported,
} from '@/uni_modules/local-ocr-lite'

使用前准备

Android

  • 使用 HBuilderX 运行到 Android 真机
  • 首次使用拍照识别时,允许相机权限
  • 识别相册图片时,确保图片路径可访问

iOS

  • 使用 HBuilderX 运行到 iPhone 真机
  • 首次使用拍照识别时,允许相机权限
  • 建议使用自定义基座或云打包验证原生能力

快速开始

1. 检查当前平台是否支持

import { getSupportInfoSync, isSupported } from '@/uni_modules/local-ocr-lite'

const supported = isSupported()
const supportInfo = getSupportInfoSync()

console.log('是否支持:', supported)
console.log('平台信息:', supportInfo)

2. 识别本地图片

import { recognizeImage } from '@/uni_modules/local-ocr-lite'

recognizeImage({
  path: '/path/to/image.jpg',
  mode: 'accurate',
  languages: ['zh-Hans', 'en-US'],
  success(res) {
    console.log('识别全文:', res.text)
    console.log('文本块:', res.blocks)
    console.log('耗时:', res.elapsedTime)
  },
  fail(err) {
    console.error('识别失败:', err)
  },
})

3. 拍照后直接识别

import { recognizeFromCamera } from '@/uni_modules/local-ocr-lite'

recognizeFromCamera({
  mode: 'accurate',
  languages: ['zh-Hans', 'en-US'],
  success(res) {
    console.log('图片路径:', res.imagePath)
    console.log('识别全文:', res.text)
    console.log('文本块:', res.blocks)
  },
  fail(err) {
    console.error('拍照识别失败:', err)
  },
})

API 说明

isSupported()

返回当前平台是否支持本插件。

返回值:

boolean

getSupportInfoSync()

返回当前平台支持信息。

返回示例:

{
  platform: 'android',
  engine: 'android-mlkit',
  supported: true,
  languages: ['zh-Hans', 'en-US'],
  modes: ['fast', 'accurate'],
  notes: 'Google ML Kit on-device OCR'
}

recognizeImage(options)

识别本地图片中的文字。

参数:

{
  path: string,
  languages?: ['zh-Hans', 'en-US'],
  mode?: 'fast' | 'accurate',
  success?: Function,
  fail?: Function,
  complete?: Function,
}

recognizeFromCamera(options)

调起相机拍照并识别。

参数:

{
  languages?: ['zh-Hans', 'en-US'],
  mode?: 'fast' | 'accurate',
  success?: Function,
  fail?: Function,
  complete?: Function,
}

返回结果说明

成功返回示例:

{
  errMsg: 'recognizeImage:ok',
  imagePath: '/path/to/image.jpg',
  text: '识别出来的完整文本',
  blocks: [
    {
      text: '第一段文字',
      boundingBox: {
        left: 12,
        top: 40,
        width: 160,
        height: 28
      }
    }
  ],
  engine: 'android-mlkit',
  elapsedTime: 233,
  imageWidth: 1080,
  imageHeight: 1920
}

字段说明:

  • text:识别出的完整文本
  • blocks:文本块数组
  • boundingBox:每个文本块的坐标信息
  • engine:当前识别引擎
  • elapsedTime:识别耗时,单位毫秒
  • imageWidth / imageHeight:图片尺寸

错误码说明

errCode 含义
8100001 没有权限或用户取消
8100002 图片路径无效
8100003 当前平台不支持
8100004 OCR 引擎初始化失败
8100005 OCR 识别失败
8100006 HarmonyOS 适配层未配置

推荐使用方式

  • 业务正式识别时建议使用 mode: 'accurate'
  • 对响应速度要求高时可以使用 mode: 'fast'
  • 中文场景建议传 ['zh-Hans']
  • 中英混合场景建议传 ['zh-Hans', 'en-US']
  • 如果业务需要做高亮展示,直接使用 blocks 中的坐标信息

注意事项

  1. 当前版本仅支持 Android / iOS,不支持 H5、小程序。
  2. HarmonyOS 目录虽然存在,但默认未启用,不能视为已支持 HarmonyOCR。
  3. recognizeImage 传入的必须是有效本地图片路径。
  4. 首次拍照识别时,用户必须授权相机权限。
  5. 大图识别会增加耗时,建议控制图片尺寸。
  6. 当前版本只提供通用文字识别,不包含身份证、营业执照、表格、票据结构化解析。
  7. 当前版本不依赖你的服务器,也不会主动上传图片。
  8. 如果你使用的是运行基座,遇到原生依赖问题,请改用自定义基座或云打包验证。

常见问题

为什么 H5 中不能使用

因为当前 OCR 能力依赖 Android/iOS 原生实现,Web 端没有实现真实识别逻辑。

为什么 HarmonyOS 不能直接使用

因为当前包只预留了 Harmony 适配结构,真实 OCR SDK 还没有正式接线完成。

需要服务器吗

不需要。当前版本为纯端侧 OCR。

需要配置第三方云 API 吗

不需要。当前版本不依赖云 API。

建议测试流程

  1. 先在 Android 真机测试相册识别
  2. 再测试拍照识别
  3. 再在 iPhone 真机测试相同流程
  4. 最后测试权限拒绝、无效路径、大图识别等异常场景

隐私、权限声明

1. 本插件需要申请的系统权限列表:

使用拍照识别时,应用需具备相机权限;从相册识别时,需具备读取相册/本地图片(照片)相关权限。具体权限名随各端系统与宿主配置而定,由开发者在应用的 AndroidManifest、Info.plist(相机/相册用途说明)等处声明。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件在设备端对所选/所拍图片进行文字识别,识别在端侧完成。插件自身不向开发者服务器上传图片与识别文本,也无固定对外的业务数据上报地址。使用 Google ML Kit(Android)与 Apple Vision(iOS)等系统/厂商提供的端侧能力时,数据处理遵循各平台 SDK 与系统策略;请开发者在隐私政策中如实告知用户。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。