更新记录
1.3.9(2026-11-07)
- 优化说明文档,补齐“作者系列 UTS 插件”清单及插件市场链接,便于按能力查找。
1.3.8(2026-10-29)
- 修复文档“下载与导入”中的重复内容,改用表格集中展示 uni-app 与 uni-app x 完整示例路径。
- 优化接入说明,移除 Android 车牌内核手动下载介绍,保留云打包自动获取依赖和安装后离线使用的说明。
- 本版仅调整文档、发布及示例诊断版本;已有匹配 1.3.7 的基座或原生安装包无需因本次更新重新制作。
1.3.7(2026-10-28)
- 优化 Android 车牌依赖交付:运行库、模型和词典改为构建阶段解析固定版本仓储依赖,减少插件及提交云打包的本地文件体积,保留安装后的离线识别能力。
- 同步插件与示例诊断版本;升级后需重新制作包含当前依赖的 Android 自定义基座或原生安装包,页面热更新无法更新这些原生依赖。
- 优化:Android 车牌内核 Maven 仓储统一迁移至 lizhao-doc-corrector 英文云目录,同步客户依赖下载路径;保留固定坐标、模型、词典和 AAR 原字节。
平台兼容性
uni-app(4.84)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | - | - | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.84)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | √ | √ | √ | - |
lizhao-doc-corrector
介绍
面向 uni-app / uni-app x 的文档扫描与 OCR 插件:拍摄或导入图片,完成四角矫正、文字及证件信息提取,人工核对后用于业务录入,也可导出 JPEG 或 PDF。
功能特色
| 能力 | 适合的业务 | 可以取得什么 |
|---|---|---|
| OCR 文字识别 | 纸质资料录入、图片文字复制 | 识别全文、文字位置;界面支持编辑后确认 |
| 身份证识别 | 中国大陆居民身份证信息录入 | 人像面、国徽面对应字段 |
| 银行卡识别 | 银行卡号录入 | 卡号及图片中可识别的银行名称 |
| 车牌号识别 | 中国大陆普通、新能源车牌录入 | 车牌号码及格式校验提示 |
| 驾驶证识别 | 中国大陆驾驶证信息录入 | 主页、副页对应字段 |
| 文档扫描与矫正 | 合同、试卷、票据、照片归档 | 原图、四角坐标、确认后的矫正图片 |
| 图像增强、批量与导出 | 多页材料整理、上传前处理 | 增强图片、逐项处理结果、JPEG / PDF 文件 |
五类识别均提供原生拍摄与核对界面,支持相册入口、重拍、修改、复制和确认;已有图片也可以直接调用识别 API。识别在设备端完成,无需配置云 OCR 账号或密钥。
适合哪些场景
| 场景 | 推荐能力 |
|---|---|
| 纸质内容录入 | 文字识别界面,核对后取 confirmedText |
| 身份证、银行卡、车牌、驾驶证录入 | 按 recognitionType 选择核对界面;已有图片使用专项 OCR |
| 合同、试卷归档 | 扫描矫正、增强、批量处理与 PDF 导出 |
| 业务已有照片 | 图片 OCR 或四角检测,不必再次打开相机 |
下载与导入
在插件市场选择“使用 HBuilderX 导入插件”,导入项目。
| 项目类型 | 完整示例路径 |
|---|---|
| uni-app | uni_modules/lizhao-doc-corrector/example/uniapp/docCorrector.vue |
| uni-app x | uni_modules/lizhao-doc-corrector/example/uniappx/index.uvue |
从基础到进阶:按业务模块使用
通用 uni-app 片段使用 Vue2/Vue3 均可使用的选项式写法;uni-app x 的强类型 UTS 页面与参数说明见 uni_modules/lizhao-doc-corrector/readme.md(API 用途速查)。下列业务方法应绑定到按钮或页面生命周期,按需调用。
模块:拍摄或选图后核对文字
适合有人工确认环节的录入页面。success 返回确认结果;用户关闭进入 fail(9020016),complete 负责解除按钮忙碌。
<template>
<view>
<button :disabled="recognizing" @tap="readText">OCR 文字识别</button>
<text selectable>{{ resultText }}</text>
</view>
</template>
<script>
import { openDocumentRecognition, closeDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 本页面使用自己的会话 ID,离开时按同一 ID 关闭。
const sessionId = 'text-entry'
export default {
data() {
// 识别界面打开期间禁用重复点击;结果留在当前页面展示。
return { recognizing: false, resultText: '' }
},
onUnload() {
closeDocumentRecognition({ sessionId })
},
methods: {
readText() {
if (this.recognizing) return
this.recognizing = true
openDocumentRecognition({
sessionId,
recognitionType: 'text',
success: (res) => {
// 用户点击“确认结果”后才触发,读取核对后的全文。
this.resultText = res.confirmedText
},
fail: (err) => {
// 关闭界面属于正常取消,其他错误再提示使用者。
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
},
complete: () => { this.recognizing = false }
})
}
}
}
</script>
模块:证件与号牌录入
用于中国大陆居民身份证录入。人像面使用 front,国徽面使用 back,界面内也可以切换。一张图、一次确认只返回当前面的结果;需要正反面资料时,分别识别并由业务汇总。
import { openDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 识别人像面;识别国徽面时将 side 改为 'back'。
function recognizeIdentity() {
openDocumentRecognition({
recognitionType: 'idCard',
side: 'front',
success: (res) => {
// 按 key 查找,不能假设字段总在数组的固定位置。
const idNumber = res.confirmedFields.find((field) => field.key === 'idNumber')
if (idNumber != null) {
uni.showModal({ title: '已确认的身份证号', content: idNumber.value, showCancel: false })
}
// 最终识别的是哪一面,以 res.side 为准。
},
fail: (err) => {
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
| 证件面 | 可提取的字段 key |
|---|---|
人像面 front |
name 姓名、gender 性别、ethnicity 民族、birthDate 出生日期、address 住址、idNumber 身份证号 |
国徽面 back |
issuingAuthority 签发机关、validFrom 有效起始日期、validTo 有效截止日期 |
银行卡、车牌、驾驶证分别使用 recognitionType: bankCard / licensePlate / driverLicense;确认字段与双面识别示例见 uni_modules/lizhao-doc-corrector/readme.md(从基础到进阶:按业务模块使用)。
模块:识别已有图片
适合已拍摄的图片、业务文件或自行选择的相册图片。下面通过系统相册取得真实本地路径,再执行 OCR;直接识别 API 不提供核对界面,success 返回原始识别结果。
import { recognizeDocument } from '@/uni_modules/lizhao-doc-corrector'
// 由按钮调用;识别类型为 paper,不能把 UI 的 'text' 填到 documentType。
function readExistingImage() {
uni.chooseImage({
count: 1,
sourceType: ['album'],
success: (selected) => {
if (selected.tempFilePaths.length === 0) return
recognizeDocument({
imagePath: selected.tempFilePaths[0],
documentType: 'paper',
timeoutMs: 8000,
success: (res) => {
// 这里只是识别原文;需要人工核对时由业务展示或使用原生识别界面。
uni.showModal({ title: '识别文字', content: res.rawText, showCancel: false })
},
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
})
}
专项 API 使用相同的 imagePath、success / fail / complete 结构,自动指定识别类型,不必再传 documentType。
| 图片内容 | 专项 API | 证件面 |
|---|---|---|
| 身份证 | recognizeIdCard |
front / back,默认 front |
| 银行卡 | recognizeBankCard |
不传 side |
| 车牌号 | recognizeLicensePlate |
不传 side |
| 驾驶证 | recognizeDriverLicense |
main / secondary,默认 main |
| 合同 | recognizeContract |
不传 side |
| 试卷 | recognizeExamPaper |
不传 side |
import { recognizeIdCard, recognizeBankCard, recognizeLicensePlate, recognizeDriverLicense } from '@/uni_modules/lizhao-doc-corrector'
// imagePath 必须来自相册、拍摄结果或应用已有的可读本地文件。
// 这些函数各自调用一次,不要对同一图片同时执行四种识别。
function readIdBack(imagePath) {
recognizeIdCard({ imagePath, side: 'back', success: showFields, fail: showError })
}
function readBankCard(imagePath) {
recognizeBankCard({ imagePath, success: showFields, fail: showError })
}
function readLicensePlate(imagePath) {
recognizeLicensePlate({ imagePath, success: showFields, fail: showError })
}
function readDriverSecondary(imagePath) {
recognizeDriverLicense({ imagePath, side: 'secondary', success: showFields, fail: showError })
}
function showFields(res) {
// structuredFields 是数组;按 key 读取需要的值,同时保留 warnings 供核对。
const lines = res.structuredFields.map((field) => field.key + ':' + field.value)
uni.showModal({ title: '识别字段', content: lines.join('\n'), showCancel: false })
}
function showError(err) {
uni.showToast({ title: err.errMsg, icon: 'none' })
}
uni-app x 的图片识别回调可从插件根目录导入 RecognizeDocumentResult,例如 success: (res: RecognizeDocumentResult) => { ... }。
模块:扫描矫正
用于合同、试卷、纸质材料归档。detect 会打开原生相机,拍照后可拖动四角,确认后得到矫正图。
import { detect, stopDocumentSession } from '@/uni_modules/lizhao-doc-corrector'
// 单次扫描始终使用同一会话 ID。
function scanDocument() {
detect({
sessionId: 'document-entry',
documentType: 'contract',
enableManualAdjust: true,
cameraResult: (res) => { console.log('拍摄原图路径', res.imagePath) },
adjustResult: (res) => {
// 确认后的图片在这里获取,可绑定 image 组件或继续 OCR、导出。
uni.previewImage({ urls: [res.imagePath] })
},
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
// 在页面卸载或业务取消时调用,不能在 scanDocument() 后立即调用。
function closeScan() { stopDocumentSession({ sessionId: 'document-entry' }) }
detect.success 表示扫描页已打开,最终矫正图从 adjustResult.imagePath 获取。 这与识别界面的 openDocumentRecognition.success 表示“用户已确认识别结果”不同。只设置 documentType 不会开启 OCR;设置 enableOcr: true 后,从最终结果的 recognitionResult 读取原始 OCR。OCR 失败时图片仍返回,原因在 recognitionError。
模块:四角检测与图片增强
适合相册图片或已有照片。先取得真实四角,再把同一原图与角点交给矫正接口;业务也可在两步之间让用户拖点调整。
import { detectDocumentCorners, correctDocument } from '@/uni_modules/lizhao-doc-corrector'
// imagePath 是已有本地图片路径;四角与原图必须配对使用。
function correctExistingImage(imagePath) {
detectDocumentCorners({
imagePath,
success: (detected) => {
correctDocument({
imagePath: detected.originalImagePath,
corners: detected.corners,
enhanceMode: 'color',
success: (res) => { uni.previewImage({ urls: [res.imagePath] }) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
},
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
corners 顺序为左上、右上、右下、左下。Android / iOS 独立检测返回的是按照片方向旋正后的完整原图像素坐标;Android 的检测结果 imagePath 可能是缩小的预览图,不能直接配用原图角点。自行绘制拖点时,需把显示坐标换算回同一原图像素。
correctDocument 可以省略 corners 或传空数组,自动检测后矫正;找不到可靠边缘时返回 9020007。非空数组必须包含 4 个有效点,显式传四角时按传入区域处理。stretchFix 保留为兼容参数;当前透视流程始终按四角拉正,不提供独立开关式的曲面/书页展平。
适合已完成矫正、只需要调整颜色或文字清晰度的图片,不会打开相机。
import { enhanceDocument } from '@/uni_modules/lizhao-doc-corrector'
// 已取得的矫正图使用黑白模式增强;成功路径可继续用于导出。
function enhanceTextImage(imagePath) {
enhanceDocument({
imagePath,
enhanceMode: 'bw',
success: (res) => { uni.previewImage({ urls: [res.imagePath] }) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
| 模式 | 用途 |
|---|---|
original |
保留原始风格 |
color |
彩色文档,默认模式 |
grayscale |
灰度输出 |
bw |
黑白文字材料 |
sharp |
锐化细节 |
shadowRemoval |
减轻阴影影响 |
增强无法恢复已经模糊或缺失的文字。四角矫正用于拉正平面文档,不等于文字行自动纠斜或弯曲书页展平。
模块:多页导出
适合将处理结果保存为文件,再用于上传、分享或归档。按 PDF 页序传入输出图片,等待导出成功后读取文件。
import { exportDocument } from '@/uni_modules/lizhao-doc-corrector'
// 传入矫正/增强结果的 imagePath 列表;传原图路径就会导出原图。
function exportPdf(imagePaths) {
exportDocument({
imagePaths,
format: 'pdf',
fileName: 'documents.pdf',
success: (res) => { console.log('导出文件路径与页数', res.filePath, res.pageCount) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
// 单张图片导出为 JPEG:质量范围 1–100,默认 92。
function exportJpeg(imagePath) {
exportDocument({
imagePaths: [imagePath], format: 'jpeg', fileName: 'document.jpg', quality: 92,
success: (res) => { console.log('JPEG 文件路径', res.filePath) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
fileName 只传文件名,不传目录、路径分隔符、. 或 ..。为保留已有导出,实际文件名可能补充唯一标识,应始终使用返回的 filePath。
PDF 需要每张输入图片都可读取,任一页失败会通过 fail 返回,不会静默丢页并报告成功;pageCount 表示实际导出页数。PDF 不会自动再矫正或添加可搜索文字层;长期保存、上传、分享由业务取得 filePath 后完成。
批量 OCR、完整会话、自动识别配置、原始/确认结果区分及主动关闭的完整代码见 uni_modules/lizhao-doc-corrector/readme.md(从基础到进阶:按业务模块使用)。
完整业务示例与接入说明
快速开始
先跑通“点击按钮 → 拍照或选图 → 核对 → 返回文字”。下面两份最小页面按项目类型选一份使用。
uni-app x 页面
以下为 uni-app x UTS 页面写法。
<template>
<view>
<button :disabled="recognizing" @tap="readText">OCR 文字识别</button>
<text selectable>{{ resultText }}</text>
</view>
</template>
<script setup lang="uts">
import { ref } from 'vue'
import { onUnload } from '@dcloudio/uni-app'
import { openDocumentRecognition, closeDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
import type { DocumentRecognitionResult, DocumentCorrectorFail } from '@/uni_modules/lizhao-doc-corrector'
// 页面状态与本页面专用的识别会话 ID。
const recognizing = ref<boolean>(false)
const resultText = ref<string>('')
const sessionId: string = 'text-entry'
function readText() {
if (recognizing.value) return
recognizing.value = true
openDocumentRecognition({
sessionId: sessionId,
recognitionType: 'text',
success: (res: DocumentRecognitionResult) => {
// UTS 回调使用公开结果类型;最终文字来自用户确认结果。
resultText.value = res.confirmedText
},
fail: (err: DocumentCorrectorFail) => {
if (err.errCode != 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
},
complete: () => { recognizing.value = false }
})
}
onUnload(() => { closeDocumentRecognition({ sessionId: sessionId }) })
</script>
先选对入口: 需要拍照、相册、核对界面用 openDocumentRecognition;只处理已有图片用 recognizeDocument 或专项识别 API;需要拍照后拖动四角并取得矫正图片用 detect。
按需查阅:五类识别 · 已有图片 · 扫描与处理 · 特殊用法 · API 与参数 · 常见问题。
后面的 js 示例用于 uni-app 页面的按钮事件或业务方法;uni-app x 的识别调用使用相同参数,结果和错误可按上面的 DocumentRecognitionResult、DocumentCorrectorFail 声明类型。涉及旧扫描会话的 uni-app x 完整写法请参照随插件提供的 .uvue 示例。
五类识别
以下五个模块都使用 openDocumentRecognition,每次只打开一种场景。success 在使用者核对并确认后触发,关闭界面进入 fail,错误码为 9020016。
OCR 文字
用于复制纸张、截图或照片中的文字。可在结果页修改全文,也可直接使用界面的复制按钮。
import { openDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 放在按钮点击事件中,确认后复制用户核对过的文字。
function recognizeText() {
openDocumentRecognition({
recognitionType: 'text',
success: (res) => {
uni.setClipboardData({ data: res.confirmedText })
// 需要识别原文时读取 res.originalResult.rawText。
},
fail: (err) => {
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
通用文字没有证件面,不传 side。confirmedFields 可以是空数组;提取全文应读取 confirmedText。
银行卡
用于从卡片图片录入卡号。当前字段为卡号和图片中的银行名称,不承诺提取持卡人、有效期或卡类型,也不会查询账户余额或开户资料。
import { openDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 银行卡不传 side;对照原卡核对后再把号码填入业务表单。
function recognizeBank() {
openDocumentRecognition({
recognitionType: 'bankCard',
success: (res) => {
const card = res.confirmedFields.find((field) => field.key === 'cardNumber')
if (card != null) {
uni.showModal({ title: '已确认的银行卡号', content: card.value, showCancel: false })
}
},
fail: (err) => {
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
字段:cardNumber 卡号、bankName 银行名称。银行名称来自图片文字,图片中没有或未识别到时可能缺失。Luhn 校验只检查数字组合是否满足规则,不能判断银行卡是否真实、有效或属于某个人。
车牌号
用于中国大陆普通车牌和新能源车牌录入。拍摄时尽量让整块车牌清晰入框,特别保留最左侧的省份简称。
import { openDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 普通车牌和新能源车牌使用同一个入口,不传 side。
function recognizePlate() {
openDocumentRecognition({
recognitionType: 'licensePlate',
success: (res) => {
const plate = res.confirmedFields.find((field) => field.key === 'plateNumber')
if (plate != null) {
uni.showModal({ title: '已确认的车牌号', content: plate.value, showCancel: false })
}
},
fail: (err) => {
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
字段:plateNumber 车牌号码。特殊号牌、其他国家或地区的号牌可改用 OCR 文字识别,再由业务判断。识别结果不包含车辆登记信息。
驾驶证
用于中国大陆驾驶证信息录入。主页使用 main,副页使用 secondary,默认主页;需要两面的资料时分别调用。
import { openDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 识别主页;副页改用 side: 'secondary',读取 fileNumber 等字段。
function recognizeDrivingLicense() {
openDocumentRecognition({
recognitionType: 'driverLicense',
side: 'main',
success: (res) => {
const license = res.confirmedFields.find((field) => field.key === 'licenseNumber')
if (license != null) {
uni.showModal({ title: '已确认的驾驶证号', content: license.value, showCancel: false })
}
// 允许用户在界面切面,按 res.side 选择业务表单。
},
fail: (err) => {
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
| 证件面 | 可提取的字段 key |
|---|---|
主页 main |
licenseNumber 证号、name 姓名、gender 性别、nationality 国籍、address 住址、birthDate 出生日期、firstIssueDate 初次领证日期、vehicleClass 准驾车型、validFrom / validTo 有效期 |
副页 secondary |
name 姓名、fileNumber 档案编号、record 记录或备注 |
原始 OCR 字段依赖图片内容和识别效果,可能缺失或为空。三端核对界面均显示当前证件面的标准字段,漏识别时可以补录;可选项允许留空。人工补录只出现在 confirmedFields,不会写入 originalResult,也不代表证件真实性验证。
合同与试卷
用于提取全文、辅助检索和整理。合同、试卷没有独立的 recognitionType 取景模式;先取得图片,再调用专项 API。
import { recognizeContract, recognizeExamPaper } from '@/uni_modules/lizhao-doc-corrector'
// 传入前一步取得的合同图片;主要读取全文,字段作为辅助信息。
function readContract(imagePath) {
recognizeContract({
imagePath,
success: (res) => { uni.showModal({ title: '合同文字', content: res.rawText, showCancel: false }) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
// 试卷使用独立函数,在用户选择试卷图片后调用。
function readExamPaper(imagePath) {
recognizeExamPaper({
imagePath,
success: (res) => { uni.showModal({ title: '试卷文字', content: res.rawText, showCancel: false }) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
三端合同的辅助字段为 title / party / partyA / partyB / date / amount,试卷为 title / score / sections / questionNumbers。只填写能从原文提取的信息,缺失时为空;历史 party 保留各端旧含义,不保证含有双方,读取甲乙方请使用 partyA / partyB。插件不提供合同条款分析、题目解答或自动阅卷。
批量处理
适合多页合同、整套试卷。每张图片分别处理,单项失败不会阻断其余图片。
import { batchProcessDocuments } from '@/uni_modules/lizhao-doc-corrector'
// imagePaths 是已取得的本地图片路径数组,按业务需要排列。
function processPages(imagePaths) {
batchProcessDocuments({
imagePaths,
correct: true,
enhanceMode: 'color',
success: (res) => {
// success 表示这一批处理结束;仍需检查失败项。
const outputPaths = res.results.map((item) => item.imagePath)
console.log('成功图片路径', outputPaths)
console.log('失败项数量', res.failures.length)
},
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
三端每批支持 1–20 张,按输入顺序处理。
correct: true(默认)自动检测并矫正,图像处理失败进入failures。enhance: false关闭滤镜增强;同时关闭correct时不会要求图片存在纸张边框。recognize: true执行逐页 OCR,通过recognitionResult返回全文;OCR 失败保留该图片并附recognitionError。
success 表示批处理结束,应同时检查 failures 和每项的 recognitionError。超过 20 张请分批提交。
import { batchProcessDocuments } from '@/uni_modules/lizhao-doc-corrector'
// 只读取照片/截图中的文字:不矫正、不增强,不要求存在纸张边框。
function recognizePages(imagePaths) {
batchProcessDocuments({
imagePaths, correct: false, enhance: false, recognize: true,
success: (res) => {
const textPages = res.results.map((item) => item.recognitionResult ? item.recognitionResult.rawText : '')
const ocrErrors = res.results.filter((item) => item.recognitionError != null)
uni.showModal({ title: '批量文字', content: textPages.join('\n\n'), showCancel: false })
// 不记录全文或证件信息;业务可按原图逐项重试。
console.log('OCR 失败页数', ocrErrors.length, '图像失败页数', res.failures.length)
},
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
自动识别、相册入口与提示文字
适合连续取景后自动尝试识别,或需要统一业务用语的场景。自动模式仍需用户核对并点击确认;timeoutMs 限制一次识别耗时,不限制核对时间。
import { openDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 识别界面的 uiTexts 和扫描界面的 uiTexts 是两套配置,不要混用字段。
function openAutomaticRecognition() {
openDocumentRecognition({
sessionId: 'auto-text-entry',
recognitionType: 'text',
captureMode: 'auto',
albumEnabled: true, // false 只隐藏本次识别界面的相册入口。
torchEnabled: true, // 允许用户切换补光灯,不表示一进入就开灯。
timeoutMs: 10000,
uiTexts: {
title: '资料录入', scanHint: '请保持文字清晰,识别后核对内容',
resultTitle: '检查录入文字', confirmButton: '使用这些文字'
},
success: (res) => { uni.setClipboardData({ data: res.confirmedText }) },
fail: (err) => {
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
三端相册导入身份证、银行卡、车牌或驾驶证后,均可调整目标矩形范围,再确认识别。多证件拼图请只框住当前目标;选择“使用全图”时,将选中的完整媒体交给识别入口,避免在导入阶段重复压缩。最终返回的 imagePath 可能是识别引擎旋正或规范化后的图片,不能用它判断与相册文件逐字节一致;文本框坐标对应返回的结果图。取消选区会返回取景页;通用 OCR 从相册导入后默认识别整图。系统相册选择器和手势样式由平台决定。
自定义文档扫描文字
适合将通用扫描提示替换为“合同”“试卷”等业务用语。只填写需要覆盖的文字,其他项目保留默认值。
import { detect } from '@/uni_modules/lizhao-doc-corrector'
// 此处配置的是文档扫描及四角调整页;不传识别界面的 title 等字段。
function scanContractWithHints() {
detect({
documentType: 'contract',
uiTexts: {
closeButton: '取消', captureButton: '拍摄合同',
scanHint: '请将整页合同放入画面', retakeButton: '重新拍照',
confirmButton: '使用照片', adjustTitle: '调整合同边框',
adjustHint: '拖动四个圆点,使边框贴合合同边缘'
},
adjustResult: (res) => { uni.previewImage({ urls: [res.imagePath] }) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
文字配置仅作用于本次会话;未传、空串或纯空白采用默认文字。系统权限弹窗、系统选择器、业务页面和错误回调中的信息不受 uiTexts 控制。
区分原始识别与人工确认
用于表单录入时保留用户更正的内容,同时允许回看识别原文。人工修改不会写回 originalResult,也没有 OCR 置信度。
import { openDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 在成功回调中分别读取原始内容和确认内容,再更新自己的表单。
function readAndReviewText() {
openDocumentRecognition({
recognitionType: 'text',
success: (res) => {
const originalText = res.originalResult.rawText // 用于对照识别原文。
const confirmedText = res.confirmedText // 用于填入业务表单。
const confirmedFields = res.confirmedFields // 元素为 key、value、edited。
const userEdited = res.edited // 表明全文或字段是否被人工修改。
uni.showModal({
title: userEdited ? '已人工修改' : '已确认原文',
content: confirmedText, showCancel: false
})
},
fail: (err) => {
if (err.errCode !== 9020016) uni.showToast({ title: err.errMsg, icon: 'none' })
}
})
}
图片 API 返回的 structuredFields 还可能有 validation、candidates、sourceText、rect,适合在自有界面中展示校验提示和候选值。validation.status 为 conflict 时请让用户核对候选,不默认采用第一个。
主动关闭识别界面
页面卸载、业务取消或切换流程时,关闭自己打开的识别会话。识别界面与文档扫描会话分别使用不同的关闭 API。
import { closeDocumentRecognition } from '@/uni_modules/lizhao-doc-corrector'
// 'text-entry' 必须与本页面 openDocumentRecognition 的 sessionId 相同。
function closeRecognition() {
closeDocumentRecognition({
sessionId: 'text-entry',
success: (res) => {
// closed=false 表示已经结束或没有这个会话,重复关闭也算成功。
console.log('本次是否关闭了活动识别界面', res.closed)
},
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
主动关闭活动识别界面,会先让原 openDocumentRecognition 收到一次 9020016 的 fail / complete,再完成本次 close 回调。该 API 不关闭 detect 或 startDocumentSession 打开的扫描页;后者使用 stopDocumentSession。
分步控制扫描会话
用于需要自行决定拍摄、暂停、恢复或关闭时机的业务。以下函数由对应操作分别触发,不能在初始化时连续调用。
import { startDocumentSession, captureDocument, pauseDocumentSession, resumeDocumentSession, stopDocumentSession } from '@/uni_modules/lizhao-doc-corrector'
// 同一流程保持相同的会话 ID。
const scanSessionId = 'controlled-scan'
function openScanSession() {
startDocumentSession({
sessionId: scanSessionId,
onCaptured: (res) => { uni.previewImage({ urls: [res.imagePath] }) },
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
function captureNow() {
// 在会话成功打开后调用;不要紧跟在 startDocumentSession 后立即拍照。
captureDocument({
sessionId: scanSessionId,
success: () => {
// HarmonyOS 此处返回会话状态;三端统一在 onCaptured 中消费图片。
console.log('拍摄操作已完成')
},
fail: (err) => { uni.showToast({ title: err.errMsg, icon: 'none' }) }
})
}
function pauseScan() { pauseDocumentSession({ sessionId: scanSessionId }) }
function resumeScan() { resumeDocumentSession({ sessionId: scanSessionId }) }
function stopScan() { stopDocumentSession({ sessionId: scanSessionId }) }
查看调用轨迹
用于接入出错时查看调用顺序,不影响识别流程。
import { getDebugTrace, clearDebugTrace } from '@/uni_modules/lizhao-doc-corrector'
// 复现问题前按需清空,复现后再读取;不要在两者之间省略实际操作。
function beginTroubleshooting() { clearDebugTrace() }
function copyTrace() { uni.setClipboardData({ data: getDebugTrace().join('\n') }) }
接入说明补充
以下保留原说明中的调用前置、业务范围、平台条件与接入顺序,配合上述模块阅读。
lizhao-doc-corrector
面向 uni-app / uni-app x 的文档扫描与 OCR 识别插件:拍摄或导入图片,完成四角矫正、文字与证件信息提取,核对后用于业务录入,也可将文档整理为 JPEG 或 PDF。
API 用途速查
| 模块 | 适用业务 | 常用方法 | 使用结果 |
|---|---|---|---|
| 五类识别界面 | 拍摄、选图后让用户核对 | openDocumentRecognition、closeDocumentRecognition |
确认全文、确认字段、原始结果 |
| 通用 OCR | 直接读取已有图片文字 | recognizeDocument |
全文、文本块、字段 |
| 证件及号牌 OCR | 已有图片字段录入 | recognizeIdCard、recognizeBankCard、recognizeLicensePlate、recognizeDriverLicense |
原始字段及校验提示 |
| 合同与试卷 OCR | 材料检索、辅助整理 | recognizeContract、recognizeExamPaper |
全文及平台支持的辅助字段 |
| 单次扫描 | 拍摄并调整四角 | detect |
cameraResult 原图、adjustResult 矫正图 |
| 分步扫描 | 自行控制会话 | startDocumentSession、captureDocument、pauseDocumentSession、resumeDocumentSession、stopDocumentSession |
会话状态、处理图片 |
| 图片处理 | 处理已有照片 | detectDocumentCorners、correctDocument、enhanceDocument |
四角、输出图片、质量提示 |
| 批量与导出 | 整理多页材料 | batchProcessDocuments、exportDocument |
逐项结果、JPEG / PDF 文件 |
| 调用排查 | 查看操作轨迹 | getDebugTrace、clearDebugTrace |
轨迹数组或清空记录 |
完整参数、回调字段、平台差异和扩展流程见 uni_modules/lizhao-doc-corrector/readme.md · API 用途速查。
识别界面 recognitionType 与图片 OCR documentType 不是同一组取值;图片 OCR 的 paper 对应通用文字。detect.success 仅表示界面打开,最终矫正图从 adjustResult / onCaptured 获取。
完整参数、返回结果与事件
识别界面参数
传给 openDocumentRecognition;仅 recognitionType 必填。
| 参数 | 类型 | 必填 | 说明 | 默认值 | 可选参数 |
|---|---|---|---|---|---|
recognitionType |
string | 按对应方法 | text / idCard / bankCard / licensePlate / driverLicense |
必填 | 见说明 |
sessionId |
string | 按对应方法 | 本次会话标识,不能显式传空白;同一相机不能同时打开多个扫描/识别界面 | recognition-default |
见说明 |
side |
string | 按对应方法 | 身份证 front / back,驾驶证 main / secondary;其他场景省略 |
身份证 front;驾驶证 main |
见说明 |
captureMode |
string | 按对应方法 | manual / auto,界面内可切换 |
manual |
见说明 |
albumEnabled |
boolean | 按对应方法 | 是否显示相册入口;取消系统选图只返回取景页 | true |
见说明 |
torchEnabled |
boolean | 按对应方法 | 允许切换设备可用的补光灯,并非初始开灯 | true |
见说明 |
timeoutMs |
number | 按对应方法 | 每次图片识别时限,1–60000 毫秒的整数 | 8000 |
见说明 |
uiTexts |
DocumentRecognitionUiTexts | 按对应方法 | 仅覆盖提供的文字字段 | 默认文字 | 见说明 |
success / fail / complete |
function | 按对应方法 | 最终确认成功或退出失败后结束;可重试识别错误在界面内提示 | 不传 | 见说明 |
已有图片 OCR 参数
传给 recognizeDocument 或专项图片识别 API。
| 参数 | 类型 | 必填 | 说明 | 默认值 | 可选参数 |
|---|---|---|---|---|---|
imagePath |
string | 按对应方法 | 设备上可读的本地图片路径,不直接传网页图片 URL | 必填 | 见说明 |
sessionId |
string | 按对应方法 | 用于结果关联;这些 API 不需要先打开相机会话 | default |
见说明 |
documentType |
DocumentType | 按对应方法 | 通用 API 可选 paper / contract / examPaper / idCard / bankCard / licensePlate / driverLicense / photo / poster / unknown;专项 API 自动指定类型 |
unknown |
见说明 |
side |
string | 按对应方法 | 与识别界面相同的证件面取值,其他类型不传 | 身份证 front;驾驶证 main |
见说明 |
mode |
string | 按对应方法 | fast / balanced / accurate,效果取决于平台 |
balanced |
见说明 |
languages |
string[] | 按对应方法 | 支持范围内的语言提示,不代表任意语言都可识别 | ['zh-Hans', 'en'] |
见说明 |
timeoutMs |
number | 按对应方法 | 1–60000 毫秒的整数 | 8000 |
见说明 |
success / fail / complete |
function | 按对应方法 | 识别成功或失败后结算;成功结果为 RecognizeDocumentResult |
不传 | 见说明 |
扫描与图片处理参数
detect、startDocumentSession 的常用扫描配置如下。
| 参数 | 类型 | 必填 | 说明 | 默认值 | 可选参数 |
|---|---|---|---|---|---|
sessionId |
string | 否 | 后续拍摄、暂停、恢复、停止使用相同 ID | default |
非空会话标识 |
documentType |
DocumentType | 否 | 文档类型提示 | unknown |
contract / paper / examPaper / idCard / bankCard / licensePlate / driverLicense / photo / poster / unknown |
mode |
DocumentProcessMode | 否 | 偏速度、平衡或偏质量;不保证相同分辨率 | balanced |
fast / balanced / accurate |
enableManualAdjust |
boolean | 否 | 允许拍后拖动四角 | true |
true / false |
enableEnhance / enhanceMode |
boolean / DocumentEnhanceMode | 否 | 是否增强输出及增强方式 | true / color |
见增强模式说明 |
autoCapture / enableOcr |
boolean / boolean | 否 | 稳定边缘后自动拍摄 / 确认图片后附带 OCR;手动拍摄仍可用,OCR 结果见 recognitionResult |
false / false |
true / false |
torchEnabled |
boolean | 否 | 扫描页初始补光设置;含义不同于识别页的同名参数 | false |
true / false |
uiTexts |
DocumentUiTexts | 否 | 扫描/四角调整页文案 | 默认文字 | 见界面文案字段 |
各图片处理 API 均可传 sessionId、success / fail / complete。
| API | 必填参数 | 常用可选参数 |
|---|---|---|
detectDocumentCorners |
imagePath |
documentType、mode: 'balanced' |
correctDocument |
imagePath |
corners、stretchFix: true、enableEnhance: true、enhanceMode: 'color'、documentType;自动检测的端差异见矫正模块 |
enhanceDocument |
imagePath |
enhanceMode: 'color' |
batchProcessDocuments |
imagePaths |
correct: true、enhance: true、recognize: false、enhanceMode: 'color' |
exportDocument |
imagePaths |
format: 'jpeg'(或 pdf)、fileName、quality: 92 |
批量三种开关独立生效,imagePaths 长度为 1–20。可使用批次的 sessionId 调用 stopDocumentSession,也可用同一 ID 开始新批次;未完成的旧批次会取消并返回 9020008。绑定已打开扫描会话的批次,还会在该扫描会话停止或被替换时取消。已经生成的缓存图片不自动删除。独立图片 OCR 仍可直接调用。
界面文案字段
字段均为可选字符串;两套 uiTexts 只应用于各自入口。
| 识别界面 DocumentRecognitionUiTexts | 用途或默认文案 |
|---|---|
title / scanHint |
场景标题、取景提示,随识别类型变化 |
closeButton / captureButton / albumButton |
关闭、拍照识别、从相册选择 |
torchOnButton / torchOffButton |
开启补光、关闭补光 |
autoModeButton / manualModeButton |
自动识别、手动拍照 |
frontSideButton / backSideButton |
人像面、国徽面 |
mainSideButton / secondarySideButton |
主页、副页 |
processingText / emptyText / timeoutText |
正在识别、未识别到文字、超时提示 |
resultTitle / editButton / copyButton |
核对识别结果、修改、复制 |
retakeButton / confirmButton |
重新拍摄、确认结果 |
| 文档扫描 DocumentUiTexts | 用途 | 平台 |
|---|---|---|
closeButton / captureButton / retakeButton / confirmButton |
关闭、拍摄、重拍、确认按钮 | Android / iOS / HarmonyOS |
scanHint / adjustHint |
取景、四角调整提示 | 三端 |
adjustTitle |
四角调整页标题 | Android / iOS;HarmonyOS 无独立标题 |
processingText / capturingHint / correctingHint |
处理按钮、拍摄及矫正提示 | HarmonyOS |
readingImageHint / enhancingHint / perspectiveHint / savingHint |
读取、增强、透视、保存提示 | HarmonyOS |
captureFailedHint / documentNotFoundHint / correctionFailedHint |
拍摄失败、未发现文档、矫正失败提示 | HarmonyOS |
识别界面确认结果
openDocumentRecognition.success 返回 DocumentRecognitionResult。
| 字段 | 说明 |
|---|---|
sessionId / recognitionType / side |
实际会话、类型和证件面;side 只在身份证/驾驶证中返回 |
imagePath |
本次识别对应的本地图片路径 |
originalResult |
原始 RecognizeDocumentResult,不会被人工编辑改写 |
confirmedText |
用户确认的全文;证件场景未编辑全文时保留原文 |
confirmedFields |
{ key, value, edited }[],用户确认后的字段;不含 OCR 置信度 |
edited |
全文或任一字段是否与原始结果不同 |
图片 OCR 原始结果
| 字段 | 说明 |
|---|---|
sessionId / imagePath / documentType / side |
图片和识别场景,非证件类型不返回 side |
rawText |
识别全文 |
textBlocks |
文本块数组:text、rect、confidence、可选 confidenceAvailable |
structuredFields |
字段数组:key、value、confidence 及可选来源、位置、候选和校验信息 |
confidence / confidenceAvailable |
参考置信度及可用性;只有 confidenceAvailable === true 才表示有真实分值 |
warnings / durationMs |
提示数组、耗时(毫秒) |
rect 是 { x, y, width, height },使用对应识别图片按方向处理后的像素坐标,不是屏幕坐标。取景或相册选区识别返回的 imagePath 指向实际识别区域,位置要相对该图绘制。
Android 车牌识别在通用 OCR 未取得有效号码时还会尝试离线车牌识字;该路径没有定位框,因此 textBlocks 为空、字段可能没有 rect。不能把“没有框”直接当作没有识别结果,应同时检查 rawText 与 structuredFields。
字段可选信息:sourceText 为来源文本,rect 为来源位置,candidates 为候选值,validation 包含 status / rule / message。confidenceAvailable 为 false 或未提供时,不能用置信度判断可靠程度;它也不是准确率百分比。
| validation.status | 业务处理建议 |
|---|---|
valid |
规则通过,仍需核对原图;不等于证件、账户或车辆信息真实 |
invalid |
保留识别值并提示核对,不自动修补号码 |
unavailable |
没有可用规则或未进行该项校验 |
conflict |
多个候选有冲突,参考 candidates 让用户选择或重拍 |
扫描、图片处理与导出结果
| 操作 | 主要返回内容 |
|---|---|
detect.success |
扫描界面已打开,主要字段 sessionId / platform / running |
detect.cameraResult |
原图阶段;adjustResult 才是确认后的矫正图片 |
detect.adjustResult、onCaptured、独立图片处理 |
DocumentProcessResult:imagePath / originalImagePath / corners / qualityScore / quality / confidence / documentType / warnings / durationMs / sessionId |
| 批量处理 | results 成功项、failures 失败项、durationMs / sessionId;失败项按实际返回的 key / value / sourceText 查看 |
| 导出 | filePath / format / pageCount / durationMs / sessionId |
| 关闭识别界面 | sessionId / closed,重复关闭时 closed: false |
开启扫描 OCR 或批量 OCR 后,DocumentProcessResult 可附带 recognitionResult(完整 RecognizeDocumentResult)或 recognitionError(errSubject / errCode / errMsg)。两者都未提供时表示本次未请求 OCR。原图阶段 cameraResult 不附带尚未执行的 OCR。
实时 onCornersChanged 的坐标使用事件声明的坐标空间及宽高/旋转信息,不要直接拿预览缓冲区坐标矫正拍摄原图;最终图片的 corners 才与该结果的原图对应。鸿蒙可重试的运行错误或能力提示通过 onStatus 发送,保留 status / message 和原有状态字段。
图片处理的 qualityScore 为 0–100 的参考质量分,quality 包含 score / blurry / glare / tooDark / edgeMissing。不同平台检测能力不同,不能据此当作完整的模糊、反光检测或跨平台准确率比较。
回调时机:
- 五类识别界面:最终
success或fail后触发一次complete;打开界面、取得候选结果不会提前触发成功。 - 图片 OCR:一次识别结束后
success或fail,随后complete;不存在用户确认步骤。 - Android / iOS
detect:success表示已打开;完成矫正通过adjustResult / onCaptured返回,失败或取消走fail,最后一次complete。未完成就主动关闭的扫描可能返回9020011,与新识别界面的取消码不同。 startDocumentSession以及 HarmonyOSdetect的complete用于会话打开阶段;取得最终图片始终监听adjustResult / onCaptured。会话状态、质量、四角变化分别通过onStatus / onQuality / onCornersChanged观察。- HarmonyOS 启用手动调整时,拍摄动作可先返回原图与待调整四角;用户确认后的最终图通过
adjustResult / onCaptured返回。三端业务统一在这两个事件中读取最终图片,避免将拍摄动作的即时返回值当作矫正结果。
错误码说明
失败对象的 errSubject 为 lizhao-doc-corrector,请同时读取 errCode / errMsg。
| 错误码 | 含义 | 处理建议 |
|---|---|---|
9020001 |
平台不支持 | 使用受支持的 App 平台 |
9020002 |
相机权限或调用上下文不可用 | 检查授权和当前页面状态 |
9020003 |
相册权限或界面打开失败 | 根据 errMsg 检查授权与界面状态 |
9020004 |
相机不可用或拍摄失败 | 检查相机占用、权限和提示 |
9020005 |
图片路径为空或批量页数超限 | 传入实际本地图片路径,每批 1–20 张 |
9020006 |
图片读取失败 | 确认文件存在、可读且格式有效 |
9020007 |
未检测到可靠文档边缘 | 重拍、换图或提供真实四角 |
9020008 |
图片矫正或处理失败 | 检查图片、参数和错误详情 |
9020009 |
OCR 不可用或识别失败 | 检查图片和平台识别条件 |
9020010 |
导出失败 | 检查图片列表和文件名 |
9020011 |
扫描会话、识别条件无效或扫描提前结束 | 根据 errMsg 核对会话、iOS 识别语言;结合关闭操作判断是否正常结束 |
9020012 |
原生依赖缺失 | 使用包含插件依赖的安装包 |
9020013 |
识别参数无效 | 检查类型、证件面、会话 ID、超时范围 |
9020014 |
未识别到文字 | 对焦、补光、靠近或换图 |
9020015 |
识别超时 | 重试或在范围内增加 timeoutMs |
9020016 |
取消识别 | 正常取消,可不提示失败 |
9020017 |
相机或识别会话忙碌 | 等待当前流程结束,避免重复点击 |
9020018 |
未发现所选类型的有效内容 | 核对类型和证件面,或改用通用文字识别 |
9020019 |
识别处理异常 | 根据提示重试并检查安装包 |
注意事项
| 平台 | uni-app | uni-app x | 能力范围 |
|---|---|---|---|
| Android | 支持 | 支持 | 文档扫描、图片处理、五类识别界面、图片 OCR、批量和导出 |
| iOS | 支持 | 支持 | 文档扫描、图片处理、五类识别界面、图片 OCR、批量和导出 |
| HarmonyOS | 支持 | 支持 | 文档扫描、图片处理、五类识别界面、图片 OCR、批量和导出 |
| Web / 微信小程序 / 支付宝小程序 | 不支持 | 不支持 | 返回 9020001 |
-
使用包含当前插件原生能力的 App 安装包;首次接入或更新原生实现/依赖后,需要重新制作对应平台自定义基座或原生安装包。仅调整文案参数、页面示例或阅读文档不需要重打基座。
-
Android / HarmonyOS 打开识别界面前需要相机授权;iOS 相机授权被拒后可在界面改用相册。仅识别已有图片时使用图片 OCR API。iOS 14 及以上使用系统照片选择器,旧系统按相册授权状态处理。
-
三端使用各自端侧识别能力,支持的语言、字体、版式、可用置信度及识别效果可能不同。Android 使用中文与拉丁文字模型;iOS 语言以系统支持范围为准,不支持的语言会报错;HarmonyOS 按端侧能力识别,不能通过
languages切换语言。身份证、驾驶证与车牌字段规则面向中国大陆常见版式。 -
Android 车牌有随包的离线识字补充路径,iOS / HarmonyOS 使用各自端侧识别实现;字段接口统一,识别效果和置信度不作跨端等值承诺。
-
Android 云打包会按插件配置自动获取依赖;安装后的车牌识别仍可离线使用。
-
文件路径使用插件或系统 API 的实际返回值。iOS 的返回路径可直接交给图片组件或本插件继续处理,不手工拼接系统沙盒目录。
-
从插件根目录 import,不使用
uni.requireNativePlugin调用。 -
扫描时保持边缘完整、对焦清晰和光线均匀;多证件图片先分开处理或只选择目标区域。
-
异步处理成功后再使用输出路径,不在文件尚未准备好时开始下一步。
-
页面离开时关闭自己打开的会话;短示例中的多个函数应由用户操作分别调用。
-
插件不主动上传图片或识别内容,数据保存与后续使用由业务控制。
Android 离线车牌识字使用 HyperLPR 模型(Apache-2.0)和 ONNX Runtime 运行库(MIT);相关许可证和第三方声明随插件提供。
信-微:l-z-1-8-7-1512-5421(-去掉,不这样写会被和谐)
平台条件与常见问题补充
常见问题
只想拿到文字,要先扫描矫正吗?
不一定。清晰的图片可以直接 OCR;纸张倾斜、背景干扰明显时,先矫正或在 Android 相册选区中框住目标通常更便于识别。
五个识别按钮点击后会发生什么?
进入对应的原生取景页,拍照或从相册选图,查看原图和识别结果,必要时修改或重拍,最后点击确认。示例页在确认后显示结果并提供复制入口。
银行卡或车牌有文字,为什么专项识别失败?
专项识别需要符合当前类型的候选内容。尽量只保留一张卡或一块车牌,避免反光、模糊和裁掉关键字符;检查选择的场景是否正确。仅需提取任意文字时,使用通用 OCR。返回字段后仍要检查校验提示。
为什么自动模式一直没有进入结果页?
自动模式需要满足当前类型的关键识别条件。示例卡号、反光或缺字可能无法满足条件,可切换手动拍照,核对具体文字和校验提示;自动识别也不会代替最终人工确认。
四个角点没贴住纸张怎么办?
预览检测与拍后检测可能有差异;没有可靠边缘时,扫描页也可显示供手动调整的初始框。请把四个点拖到真实边缘后确认,不能仅凭“出现四个点”判断检测准确。独立四角检测失败则返回 9020007。
为什么已经打开界面,却没有收到识别 success?
识别界面的成功表示用户确认最终结果。等待确认即可;如果主动关闭,会收到 9020016。文档扫描的回调时机不同,请查看“返回结果与回调”。
返回的字段可以直接作为最终业务信息吗?
请先核对。OCR 可能漏字、错字,部分字段可能没有返回;校验通过只说明满足规则。识别界面的人工修改结果读取 confirmedFields,直接图片识别读取 structuredFields。
图片或 PDF 如何长期保存、分享?
等待成功回调,使用返回的 imagePath 或 filePath,由业务保存到自己的目录或交给分享、上传接口。不要依赖临时图片长期存在。
作者系列 UTS 插件
以下为作者已发布的 UTS 插件,可按能力方向查找。
| 插件 | 能力方向 | 插件市场 |
|---|---|---|
lizhao-alipay-kit |
支付宝授权登录、App 支付与脱敏诊断 | 查看插件 |
lizhao-app-keepalive |
应用保活、唤醒、自愈与报告 | 查看插件 |
lizhao-apple-iap |
苹果内购、交易恢复、订阅管理与服务端验签参考 | 查看插件 |
lizhao-apple-login |
苹果授权登录、凭证状态与撤销监听 | 查看插件 |
lizhao-bg-audio |
背景音频播放、队列、倍速与事件 | 查看插件 |
lizhao-ble |
BLE 扫描、连接、读写、通知与自动重连 | 查看插件 |
lizhao-call-kit |
电话、短信、通讯录原生能力 | 查看插件 |
lizhao-camera-pro |
原生相机、拍照录像、水印与媒体保存 | 查看插件 |
lizhao-cast-screen |
DLNA 投屏、AirPlay 路由入口 | 查看插件 |
lizhao-choose-file |
原生文件选择、上传、进度与取消 | 查看插件 |
lizhao-device-id |
设备标识、隐私策略与诊断 | 查看插件 |
lizhao-dingtalk |
钉钉授权登录、内容分享与回执诊断 | 查看插件 |
lizhao-doc-corrector |
文档扫描、矫正、增强与识别 | 查看插件 |
lizhao-douyin-kit |
抖音授权登录、内容分享与回执诊断 | 查看插件 |
lizhao-emu-detect |
模拟器环境检测、风险评分与证据 | 查看插件 |
lizhao-float-window |
悬浮窗、画中画、权限与诊断 | 查看插件 |
lizhao-gallery-pro |
相册媒体分页、筛选、缩略图与导出 | 查看插件 |
lizhao-google-login |
Google 授权登录、会话管理与脱敏诊断 | 查看插件 |
lizhao-hce-card |
NFC 虚拟卡、APDU 交互与 NDEF 标签模拟 | 查看插件 |
lizhao-health |
健康数据授权、查询、统计与写入 | 查看插件 |
lizhao-http-server |
本地 HTTP 服务、文件传输与实时通信 | 查看插件 |
lizhao-icon-pro |
SVG 图标组件、多主题与缓存 | 查看插件 |
lizhao-id-photo |
证件照制作、尺寸换算、换底色与模板换装 | 查看插件 |
lizhao-img-eraser |
图片去水印、局部修复与原生编辑器 | 查看插件 |
lizhao-live-activity |
实时活动、系统胶囊与普通通知降级 | 查看插件 |
lizhao-live-photo |
实况照片选取、展示预览与原件处理 | 查看插件 |
lizhao-map |
高德地图、定位、地点搜索、路线规划与导航 | 查看插件 |
lizhao-meta |
Facebook 登录分享、应用事件与深链 | 查看插件 |
lizhao-nfc-pro |
NFC 标签读写、NDEF、IsoDep 与诊断 | 查看插件 |
lizhao-notify-pro |
本地通知、点击动作、进度与定时提醒 | 查看插件 |
lizhao-novel-reader |
原生小说阅读、仿真翻页与段落评论 | 查看插件 |
lizhao-office-view |
Office 与 PDF 文件预览、进度与缓存管理 | 查看插件 |
lizhao-pdf-pro |
PDF 阅读、签批、真实写回与页面处理 | 查看插件 |
lizhao-play-billing |
Google Play 商品购买、订阅、恢复与确认消耗 | 查看插件 |
lizhao-qq-share |
QQ 授权码登录、QQ 与 QQ 空间分享 | 查看插件 |
lizhao-qrcode |
二维码生成、Logo 与样式配置、批量生成及导出 | 查看插件 |
lizhao-scan-pro |
原生扫码、连续扫码、相册识别 | 查看插件 |
lizhao-serial-port |
路径串口、USB 串口、多会话收发与诊断 | 查看插件 |
lizhao-share-plus |
系统分享、远程文件下载后分享 | 查看插件 |
lizhao-smart-tts |
系统 TTS、云端合成、听书方案 | 查看插件 |
lizhao-sqlite-pro |
原生 SQLite、迁移、备份与诊断 | 查看插件 |
lizhao-sse-pro |
SSE、Line、JSONL 与 Raw 流式请求 | 查看插件 |
lizhao-tcp-pro |
TCP 客户端、服务端、多连接与诊断 | 查看插件 |
lizhao-usb-storage |
U 盘、移动硬盘文件浏览、读写与批量复制 | 查看插件 |
lizhao-video-editor |
视频裁剪、压缩、取帧与 FFmpeg/FFprobe | 查看插件 |
lizhao-video-feed |
短视频上下滑、短剧选集与分页加载 | 查看插件 |
lizhao-video-player |
原生视频播放器、清晰度与播放交互 | 查看插件 |
lizhao-video-thumb |
视频封面、批量取帧与 Base64 返回 | 查看插件 |
lizhao-vpn-pro |
企业 VPN、IKEv2、安全接入与脱敏诊断 | 查看插件 |
lizhao-wechat-kit |
微信登录、分享、支付、小程序与客服 | 查看插件 |
lizhao-wecom |
企业微信授权登录、内容分享与脱敏诊断 | 查看插件 |
lizhao-xhs-share |
小红书图文视频分享与回执诊断 | 查看插件 |

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