更新记录

1.1.11(2026-08-06)

  • iOS 拍后全屏微调页改为模糊 aspectFill 背景与完整 aspectFit 前景双层结构,重拍、提示和确认操作使用安全区悬浮胶囊,四个拖动点始终限制在真实前景图片区域内。
  • 修复 iOS 拖动四角后的矫正结果与框选区域不一致:手动页使用规范化 CGImage 真实像素尺寸,Core Image 通过 CIImage(cgImage:) 和实际 extent 统一 UIKit 左上原点到滤镜坐标。
  • uni-app 与 uni-app x 示例升级为专业扫描工具:首屏突出扫描入口,矫正结果大图优先,质量摘要和两列工具适配窄屏,高级 API、路径和日志默认折叠但完整保留。
  • iOS 原生 Swift 已变化,升级后必须重新运行 iOS 原生联编或制作并安装匹配源码的 iOS 自定义基座;Android 原生代码未修改,不需要因本版本重新制作 Android 基座。

1.1.10(2026-08-06)

  • iOS 实时四角参考框:原生相机新增 Vision 矩形检测,未可靠识别到文档时明确清空提示框,不伪造检测结果。
  • iOS 拍照后新增拍后手动四角微调、重拍和确认矫正,确认时使用四个真实原图像素角点完成透视矫正,不再使用空角点直接输出。
  • 修复 iOS 扫描原图和矫正结果图生成成功但 uni-app 页面无法显示的问题:文件复制到当前 DCloud _doc 应用目录后再回传可访问路径。
  • 公共 API、Demo 的 detect(...) 调用和 Android 实现均未改变;升级后需重新运行 iOS 原生联编或重新制作并安装匹配源码的 iOS 自定义基座。

1.1.9(2026-07-31)

  • 修复 uni-app x 示例日志样式在 HarmonyOS 编译时使用不受支持的 white-space: pre-wrap 导致构建失败的问题,改用平台支持的 normal 并保留自动换行。
  • 本版本只修改示例样式和发布元数据,不改变文档检测、矫正、OCR、导出或平台原生实现,无需因此重新制作自定义基座。
查看更多

平台兼容性

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

lizhao-doc-corrector 是纯 UTS API 插件,用于合同、身份证、银行卡、相片、海报、试卷等矩形文档的捕捉、检测、矫正、增强、批量处理、导出与 OCR 字段抽取。

Android 成像清晰度优化

插件针对华为 Mate30 拍照后手动微调预览和最终矫正图偏模糊的问题,重做 Android 拍摄、精确有界解码和输出处理链路;同时保留华为 P40 等高像素设备的 OOM 防护。最终效果仍会受镜头对焦、拍摄距离、光线和手持稳定性影响。

iOS 拍后矫正与示例体验

  • iOS 拍后全屏微调使用完整原图作为业务坐标基准,拖动点只落在真实图片区域;确认时按原图像素和 Core Image 实际 extent 输出框选区域。
  • iOS 原生相机、实时参考框、重拍、四角微调和确认矫正均由插件内部完成;升级原生实现后需要重新运行 iOS 原生联编或制作匹配的 iOS 自定义基座。
  • uni-app 与 uni-app x 提供一致的专业扫描工具示例,首屏突出扫描入口,结果图优先展示;高级 API、文件路径和调试日志仍可在“开发者工具”中展开。
  • 示例页视觉和布局属于前端资源,单独调整示例时无需重新制作自定义基座。

功能特色

  • 原生全屏拍摄、实时四角参考、拍后全屏微调、透视矫正和增强在一个插件内闭环,不依赖 uni 页面相机组件拼接核心能力。
  • fast:速度优先,适合连续拍摄或更关注响应速度的场景。
  • balanced:默认,画质与内存平衡,适合合同、试卷和日常文档扫描。
  • accurate:质量优先,适合文字较小且设备内存充足的场景。
  • Android 会按当前可用堆内存预估解码与输出峰值,内存不足时会安全降档,并保留最多一次 OOM 降档重试。
  • 最终图会重新读取拍摄 JPEG 处理;JPEG 压缩、写入或可解码校验失败时返回明确错误,不会把原图伪装成矫正成功结果。

Android 三档处理策略

mode 适合场景 拍摄与处理取向 内存策略
fast 连续拍摄、低延迟交互 优先速度,使用较低的有界采集与输出目标 预算不足时返回明确失败,不向更高档升级
balanced 默认文档扫描 平衡小字清晰度、处理耗时和内存 预算不足时降到 fast
accurate 小字、细线且设备内存充足 优先质量,使用更高的有界目标 预算不足时依次降到 balanced / fast

三档只影响 Android 原生拍摄会话;iOS 保持现有处理策略。档位是质量目标而不是无条件分辨率承诺,插件会先按设备真实支持尺寸和剩余内存选择安全配置。

接入方式选择

场景 推荐入口 说明
一次完成拍照、微调和矫正 detect(options) 推荐主入口,默认 balanced
自行管理会话和后续捕捉 startDocumentSession(options) 适合需要暂停、恢复或连续捕捉的业务
处理已有图片 correctDocument / enhanceDocument 独立图片 API 不接收会话 mode
Harmony、Web 或小程序 同名 API 的明确失败回调 当前不伪造成功,详见平台表

本插件不使用老式 App 原生语言插件,不支持 uni.requireNativePlugin 调用方式。页面端必须从插件根目录 import。

// 页面端只能从插件根目录导入需要的 API。
import { correctDocument, recognizeDocument } from "@/uni_modules/lizhao-doc-corrector";

最短可用示例

// Android 默认使用 balanced;先接收拍照阶段结果,再接收最终矫正结果。
import { detect } from "@/uni_modules/lizhao-doc-corrector";

detect({
  sessionId: "main",
  documentType: "contract",
  enableManualAdjust: true,
  cameraResult(res) {
    console.log("拍照结果", res.imagePath);
  },
  adjustResult(res) {
    console.log("矫正结果", res.imagePath, res.corners);
  },
  fail(err) {
    console.log("扫描失败", err.errCode, err.errMsg);
  },
});

支持平台

平台 是否支持 说明
uni-app Android 支持 UTS API 调用;startDocumentSession 打开插件原生全屏相机捕捉页
uni-app iOS 支持 UTS API 调用;startDocumentSession 打开插件原生全屏相机捕捉页
uni-app x Android 支持 UTS API 调用;startDocumentSession 打开插件原生全屏相机捕捉页
uni-app x iOS 支持 UTS API 调用;startDocumentSession 打开插件原生全屏相机捕捉页
Harmony 当前同接口返回 9020001
Web 当前同接口返回 9020001
微信小程序 当前同接口返回 9020001
支付宝小程序 当前同接口返回 9020001

目录结构

uni_modules/lizhao-doc-corrector
├─ package.json
├─ readme.md
├─ changelog.md
└─ utssdk
   ├─ interface.uts
   ├─ unierror.uts
   ├─ index.uts
   ├─ app-android
   ├─ app-ios
   ├─ app-harmony
   ├─ web
   ├─ mp-weixin
   └─ mp-alipay

权限与自定义基座

平台 权限 配置位置 是否需要自定义基座
Android 相机、相册/图片读取、震动 utssdk/app-android/AndroidManifest.xmlconfig.json 使用 CameraX / ML Kit 依赖时需要
iOS 相机、相册读取、相册写入 utssdk/app-ios/Info.plistPrivacyInfo.xcprivacy 使用系统 Vision / CoreImage 不需要三方 SDK
Harmony 当前降级
Web/小程序 当前降级

相机权限来自插件原生全屏拍摄页的 Android CameraX / iOS AVFoundation 调用,不是依赖 uni.chooseImage 或 uni 页面相机组件完成核心拍摄。

该成像优化修改了 Android CameraX、UTS 与 Kotlin 原生逻辑,升级相关实现后需要重新打 Android 自定义基座或重新运行原生联编;只更新 wgt/appResource 不会把新原生实现装入旧基座。

API 列表

API 说明
detect(options) 一键文档扫描(推荐主入口)
startDocumentSession(options) 启动文档捕捉会话
captureDocument(options) 从当前会话捕捉文档
pauseDocumentSession(options) 暂停会话
resumeDocumentSession(options) 恢复会话
stopDocumentSession(options) 停止会话
detectDocumentCorners(options) 检测文档四角
correctDocument(options) 矫正文档
enhanceDocument(options) 增强文档
batchProcessDocuments(options) 批量处理文档
exportDocument(options) 导出 JPEG / PDF
recognizeDocument(options) 通用 OCR 与文档类型识别
recognizeIdCard(options) 身份证字段抽取
recognizeBankCard(options) 银行卡字段抽取
recognizeContract(options) 合同字段抽取
recognizeExamPaper(options) 试卷字段抽取
getDebugTrace() 获取调试轨迹
clearDebugTrace() 清空调试轨迹

detect(options)(推荐)

说明
一键拉起原生拍摄页,执行“拍照 -> 手动四角微调 -> 确认矫正 -> 返回结果”的完整链路。
默认会在拍后回调结果并自动结束会话,用户不需要再手动点“捕捉当前文档”。

支持平台
Android / iOS

参数

参数 类型 必填 说明 默认值 可选参数
options DocumentDetectOptions 一键扫描参数对象 sessionId / documentType / mode / autoCapture / enableManualAdjust / enableEnhance / enhanceMode / enableOcr / torchEnabled / success / fail / complete / onStatus / onQuality / onCornersChanged / cameraResult / adjustResult / onCaptured
options.mode DocumentProcessMode Android 拍摄处理策略;内存不足时会按 accurate -> balanced -> fast 安全降档 balanced fast / balanced / accurate
options.enableManualAdjust boolean 是否允许拍后手动拖拽四角 true true / false
options.cameraResult UTSCallback 拍照阶段回调(原图阶段)
options.adjustResult UTSCallback 确认矫正后回调(结果图阶段)

startDocumentSession(options)

说明 启动原生文档捕捉会话。

支持平台 Android / iOS

参数

参数 类型 必填 说明 默认值 可选参数
options DocumentSessionOptions 会话参数对象 sessionId / documentType / mode / autoCapture / enableManualAdjust / enableEnhance / enhanceMode / enableOcr / torchEnabled / success / fail / complete / onStatus / onQuality / onCornersChanged / onCaptured
options.sessionId string 会话 ID default
options.documentType DocumentType 文档类型提示 unknown contract / idCard / bankCard / photo / poster / examPaper / paper / unknown
options.mode DocumentProcessMode Android 拍摄处理策略;内存不足时会按 accurate -> balanced -> fast 安全降档 balanced fast / balanced / accurate
options.autoCapture boolean 是否自动拍摄 false true / false
options.enableManualAdjust boolean 是否允许手动调整四点 true true / false
options.enableEnhance boolean 是否自动增强 true true / false
options.enhanceMode DocumentEnhanceMode 增强模式 color original / color / grayscale / bw / sharp / shadowRemoval
options.enableOcr boolean 是否启用 OCR false true / false
options.torchEnabled boolean 是否开启闪光灯 false true / false
options.success UTSCallback 会话启动成功回调
options.fail UTSCallback 会话启动失败回调
options.complete UTSCallback 会话启动完成回调
options.onStatus UTSCallback 会话状态持续回调
options.onQuality UTSCallback 文档质量持续回调
options.onCornersChanged UTSCallback 四角变化持续回调
options.onCaptured UTSCallback 原生全屏捕捉页拍摄并矫正完成回调

返回值

字段 类型 说明
sessionId string 会话 ID
platform string 当前平台
running boolean 是否已启动

captureDocument(options)

说明 触发当前原生全屏捕捉会话拍摄一张文档图片,并复用插件的检测、矫正和增强流程输出结果。

支持平台 Android / iOS

参数

参数 类型 必填 说明 默认值 可选参数
options CaptureDocumentOptions 捕捉参数对象 sessionId / success / fail / complete
options.sessionId string 会话 ID,需与 startDocumentSession 一致 default
options.success function 拍摄、矫正成功回调
options.fail function 拍摄失败或会话不存在时触发
options.complete function 拍摄流程结束回调

返回值

字段 类型 说明
sessionId string 会话 ID
imagePath string 原生相机拍摄并矫正后的输出图片路径
corners Array 检测或矫正使用的文档四角
qualityScore number 文档质量评分

correctDocument(options)

说明 对已有图片执行文档四角检测、透视矫正与可选增强。

支持平台 Android / iOS

参数

参数 类型 必填 说明 默认值 可选参数
options CorrectDocumentOptions 矫正参数对象 sessionId / imagePath / corners / stretchFix / enableEnhance / enhanceMode / documentType / success / fail / complete
options.sessionId string 会话 ID default
options.imagePath string 图片路径 本地路径、file://content://
options.corners Array 手动指定四角 自动检测 左上、右上、右下、左下
options.stretchFix boolean 是否拉伸修复 true true / false
options.enableEnhance boolean 是否增强 true true / false
options.enhanceMode DocumentEnhanceMode 增强模式 color original / color / grayscale / bw / sharp / shadowRemoval
options.documentType DocumentType 文档类型提示 unknown contract / idCard / bankCard / photo / poster / examPaper / paper / unknown
options.success function 成功回调
options.fail function 失败回调
options.complete function 完成回调

返回值

字段 类型 说明
sessionId string 会话 ID
imagePath string 输出图片路径
originalImagePath string 原图路径
corners Array 文档四角
qualityScore number 综合质量分
confidence number 置信度
warnings Array 警告列表
durationMs number 处理耗时
documentType DocumentType 文档类型
quality DocumentQualityInfo 质量详情

recognizeDocument(options)

说明 对图片执行通用 OCR、文档类型判别与结构化字段抽取。

支持平台 Android / iOS

参数

参数 类型 必填 说明 默认值 可选参数
options RecognizeDocumentOptions OCR 参数对象 sessionId / imagePath / documentType / mode / languages / success / fail / complete
options.sessionId string 会话 ID default
options.imagePath string 图片路径 本地路径、file://content://
options.documentType DocumentType 文档类型提示 unknown contract / idCard / bankCard / photo / poster / examPaper / paper / unknown
options.mode DocumentProcessMode 识别策略 balanced fast / balanced / accurate
options.languages Array OCR 语言 zh-Hans,en
options.success function 成功回调
options.fail function 失败回调
options.complete function 完成回调

返回值

字段 类型 说明
sessionId string 会话 ID
imagePath string 图片路径
documentType DocumentType 文档类型
confidence number 识别置信度
rawText string 原始文本
textBlocks Array 文本块
structuredFields Array 结构化字段
warnings Array 警告列表
durationMs number 识别耗时

错误码

错误码 含义 说明
9020001 platform unsupported 当前平台暂不支持
9020002 camera permission denied 相机权限被拒绝
9020003 album permission denied 相册权限被拒绝
9020004 camera unavailable 相机不可用或当前构建未启用相机 UI
9020005 image path is empty 图片路径为空
9020006 image read failed 图片读取失败
9020007 document corners not found 未检测到矩形文档
9020008 document correction failed 文档矫正失败
9020009 ocr unavailable OCR 不可用
9020010 export failed 导出失败
9020011 session not found 会话不存在
9020012 native dependency missing 原生依赖缺失

uni-app 示例

// uni-app:先矫正已有图片,再识别或导出;每一步都保留失败处理。
import {
  correctDocument,
  recognizeDocument,
  exportDocument,
} from "@/uni_modules/lizhao-doc-corrector";

correctDocument({
  imagePath: "/storage/emulated/0/DCIM/sample.jpg",
  documentType: "contract",
  enhanceMode: "color",
  success(res) {
    console.log("矫正结果", res.imagePath, res.corners);
    recognizeDocument({
      imagePath: res.imagePath,
      documentType: "contract",
      success(ocr) {
        console.log("OCR", ocr.rawText, ocr.structuredFields);
      },
    });
  },
  fail(err) {
    console.log("矫正失败", err.errCode, err.errMsg);
  },
});

exportDocument({
  imagePaths: ["/storage/emulated/0/DCIM/sample.jpg"],
  format: "pdf",
  fileName: "contract.pdf",
  success(res) {
    console.log("导出文件", res.filePath);
  },
});

uni-app x 示例

// uni-app x:会话 API 需要保持同一个 sessionId,并在业务结束时主动停止。
import {
  startDocumentSession,
  captureDocument,
  stopDocumentSession,
  correctDocument,
} from "@/uni_modules/lizhao-doc-corrector";

startDocumentSession({
  sessionId: "main",
  documentType: "examPaper",
  enableManualAdjust: true,
  enableOcr: true,
  onStatus(res) {
    console.log("会话状态", res.status);
  },
  onCaptured(res) {
    console.log("原生相机拍摄完成", res.imagePath, res.qualityScore);
  },
  success(res) {
    console.log("会话启动", res.sessionId);
  },
  fail(err) {
    console.log("会话失败", err.errCode, err.errMsg);
  },
});

captureDocument({
  sessionId: "main",
  success(res) {
    console.log("主动触发拍摄", res.imagePath);
  },
});

correctDocument({
  sessionId: "main",
  imagePath: "/tmp/exam-paper.jpg",
  documentType: "examPaper",
  success(res) {
    console.log("试卷矫正", res.qualityScore);
  },
});

stopDocumentSession({
  sessionId: "main",
});

注意事项

  • 本插件是 UTS 插件,只能通过插件根目录 import。
  • 你问的“是否拍摄时就矫正”:是。拍摄页会实时框选文档,拍后可手动拖点微调,确认后返回矫正图。
  • 当前 Harmony / Web / 小程序为降级实现,失败回调会收到 9020001
  • 当前 Android / iOS 版本已稳定公开 API 与回调语义,端侧相机 UI、透视算法、OCR 原生引擎会在后续版本继续增强;不会伪造 OCR 文本或伪造相机拍摄成功。
  • successfailcomplete 每次调用最多触发一次;持续状态只通过 onStatusonQualityonCornersChanged 返回。

常见问题

  1. 点击扫描后相机打不开
    检查相机权限是否授予;若 Android 侧使用了 CameraX/ML Kit 依赖,请确认已安装包含插件依赖的自定义基座。

  2. 拍完后页面没拿到结果
    请使用 detect 并监听 adjustResult;该回调是最终矫正结果的主回调。

  3. session not found
    说明会话已结束或会话 ID 不一致。推荐直接走 detect,避免手动管理会话状态。

联系方式

信-微:l-z-1-8-7-1512-5421(-去掉,不这样写会被和谐)

作者系列UTS插件

以下为已在 DCloud 插件市场上架的作者系列 UTS 插件,可按业务场景组合使用。未列出的插件表示当前未确认公开市场页,后续上架后再补充。

插件 能力方向 插件市场
lizhao-nfc-pro NFC 标签读写、NDEF、IsoDep 与诊断 查看插件
lizhao-float-window 悬浮窗、画中画、权限与诊断 查看插件
lizhao-device-id 设备标识、隐私策略与诊断 查看插件
lizhao-scan-pro 原生扫码、连续扫码、相册识别 查看插件
lizhao-choose-file 原生文件选择、上传、进度与取消 查看插件
lizhao-bg-audio 背景音频播放、队列、倍速与事件 查看插件
lizhao-smart-tts 系统 TTS、云端合成、听书方案 查看插件
lizhao-share-plus 系统分享、远程文件下载后分享 查看插件
lizhao-sqlite-pro 原生 SQLite、迁移、备份与诊断 查看插件
lizhao-icon-pro SVG 图标组件、多主题与缓存 查看插件
lizhao-cast-screen DLNA 投屏、AirPlay 路由入口 查看插件
lizhao-call-kit 电话、短信、通讯录原生能力 查看插件
lizhao-app-keepalive 应用保活、唤醒、自愈与报告 查看插件
lizhao-doc-corrector 文档扫描、矫正、增强与识别 查看插件
lizhao-emu-detect 模拟器环境检测、风险评分与证据 查看插件
lizhao-gallery-pro 相册媒体分页、筛选、缩略图与导出 查看插件
lizhao-video-thumb 视频封面、批量取帧与 Base64 返回 查看插件
lizhao-ble BLE 扫描、连接、读写、通知与自动重连 查看插件
lizhao-sse-pro SSE、Line、JSONL 与 Raw 流式请求 查看插件

隐私、权限声明

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

相机、相册、文件读写、震动

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

插件仅处理调用方传入或拍摄的本地图片,不主动上传数据

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