更新记录
1.0.0(2026-11-01)
- 首发:身份证人像面 / 国徽面本地识别。
- 标准模式组件
umi-idcard:圆角取景框、人像/国徽引导、拍摄与相册。
平台兼容性
uni-app x(5.24)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | √ | √ | √ | × |
umi-ocr-x
uni-app x 身份证本地 OCR 插件(Android / iOS / HarmonyOS)。图片不上传,识别在设备端完成。
仅 App。Android、iOS 真机运行必须打 自定义基座(Android 含 ML Kit 依赖)。鸿蒙走原生编译。
加密后的普通授权版只能从 @/uni_modules/umi-ocr-x 导入,不要写 utssdk/ 内部路径。
取景 UI
标准模式组件 umi-idcard,与示意图一致:
- 人像面:圆角取景框 + 提示文案 + 右侧人像轮廓
- 国徽面:圆角取景框 + 提示文案 + 左侧国徽轮廓
- 半透明遮罩、关闭;快门与相册可通过参数隐藏
只通过 option 配置。字段用 number / string,不要写 boolean。
<umi-idcard
:option="scanOption"
@success="onOk"
@fail="onFail"
@cancel="onCancel"
></umi-idcard>
class UmiIdCardViewOption {
mode : string
showAlbum : number
showShutter : number
constructor(mode : string, showAlbum : number, showShutter : number) {
this.mode = mode
this.showAlbum = showAlbum
this.showShutter = showShutter
}
}
const scanOption = ref(new UmiIdCardViewOption('both', 1, 1))
umi-idcard 属性
| 属性 | 类型 | 默认 | 含义 |
|---|---|---|---|
option |
object | null |
扫描配置,见下表。未传时按默认值:mode=both,相册和快门都显示 |
option 字段
| 字段 | 类型 | 默认 | 含义 |
|---|---|---|---|
mode |
string | both |
扫描面:both 先人像后国徽;front 仅人像面;back 仅国徽面 |
showAlbum |
number | 1 |
1 显示「相册」按钮;0 隐藏。别名 album |
showShutter |
number | 1 |
1 显示快门;0 仅人像面隐藏快门并自动抓拍识别。别名 shutter / showCamera / camera |
option.showShutter 为 0 时(仅人像面):
- 提示改为「请将身份证人像面对准取景框」,过程中不显示「识别中」
- 组件约每 2.5 秒静默抓拍一次(避免连续高分辨率拍照导致发热);必须同时识别到姓名、性别、出生、住址、公民身份号码才算成功
- 缺任一上述字段则自动重试;连续 3 次仍没有完整人像面数据时,Toast「请正确放置身份证」,然后计数清零继续识别
- 未对准、反光、不完整时继续取景,不弹失败 Toast
- 光线过暗、证件未对准取景框、或表面反光过强时,在取景框中央提示「光线不足 / 请对准证件 / 反光过强」
- 国徽面(
option.mode为back,或both切到背面)不走自动识别,会显示快门手动拍摄 - 相册仍受
option.showAlbum控制
事件
| 事件 | 载荷 | 含义 |
|---|---|---|
success |
UmiIdCardScanResult |
当前 mode 所需的面都识别完成。front / back 均为 UmiIdCardResult;未扫的那一面为空结果 |
fail |
UmiOcrFailPayload |
相机不可用等中断错误(errMsg) |
cancel |
UmiOcrFailPayload |
用户点关闭,errMsg 为 cancel |
Android / iOS 使用 <camera> 预览。鸿蒙官方 camera 组件不可用,组件内用 native-view + CameraKit 预览。
API
| API | 说明 |
|---|---|
recognizeIdCard(options) |
识别本地图片中的身份证字段 |
idCardOptions(imagePath) |
工厂,side 为 auto |
idCardOptionsWithSide(imagePath, side) |
工厂,side:front / back / auto |
import {
idCardOptionsWithSide,
recognizeIdCard,
readAnyErrMsg,
UmiIdCardResult
} from '@/uni_modules/umi-ocr-x'
recognizeIdCard(idCardOptionsWithSide(path, 'front')).then((item : UmiIdCardResult) => {
console.log(item.name, item.idNumber)
}, (err : any | null) => {
console.log(readAnyErrMsg(err, '识别失败'))
})
UmiIdCardResult
| 字段 | 说明 |
|---|---|
side |
front 人像面 / back 国徽面 |
name |
姓名 |
sex |
性别 |
nation |
民族 |
birth |
出生日期 |
address |
住址 |
idNumber |
公民身份号码 |
issueAuthority |
签发机关 |
validPeriod |
有效期限 |
rawText |
OCR 原文 |
imagePath |
识别用图片路径 |
权限
Android / iOS 权限写在应用 manifest.json。鸿蒙不要只写 manifest.json 的 app-harmony.distribute.requestPermissions,HBuilderX 不会可靠地合并进工程;按鸿蒙运行与打包声明在工程 harmony-configs/entry/src/main/module.json5 的 requestPermissions。插件侧也可写 utssdk/app-harmony/module.json5(HAR 子模块权限对整个应用生效)。
- Android
app-android.distribute.permissions:CAMERA - iOS
app-ios.distribute.privacyDescription:NSCameraUsageDescription、NSPhotoLibraryUsageDescription - 鸿蒙:
ohos.permission.CAMERA(harmony-configs与插件module.json5)
光线不足、未对准证件、反光过强时,取景框中央会提示;应对准取景框、避开强光后重拍。

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 1503
赞赏 4
下载 12731366
赞赏 1959
赞赏
京公网安备:11010802035340号