更新记录
1.1.1(2025-12-25)
1.1.0(2025-12-25)
- 重构安卓端识别代码
- 新增支持车牌号、VIN信息识别功能
1.0.8(2025-05-18)
修复在uniapp项目中识别不到的bug
查看更多
平台兼容性
uni-app(4.85)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
Android插件版本 |
iOS |
鸿蒙 |
| × |
× |
× |
× |
× |
- |
5.1 |
1.0.0 |
× |
× |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| × |
× |
× |
× |
× |
× |
× |
× |
× |
- |
× |
× |
uni-app x(4.85)
| Chrome |
Safari |
Android |
Android插件版本 |
iOS |
鸿蒙 |
微信小程序 |
| × |
× |
5.1 |
1.0.0 |
× |
× |
× |
xwq-mlkit-card-text
开发文档说明
初始化参数说明
| 属性 |
类型 |
默认值 |
描述 |
| recognizeType |
string |
IDCARD |
识别类型,默认身份证,可选值:VIN、PLATE(车牌)、IDCARD(身份证) |
| type |
number |
1 |
当recognizeType为IDCARD时生效,1-正面 2-反面 |
| scanBoxHeight |
number |
-- |
识别框高度设置,可自行调整 |
| scanBoxTitle |
string |
-- |
识别框顶部的文案内容 |
| scanBoxTitleColor |
string |
-- |
识别框顶部的文案内容颜色 |
| scanBoxTitleSize |
number |
16 |
识别框顶部的文案内容字号大小 |
识别成功回调函数参数对象说明
| 属性 |
类型 |
描述 |
| address |
string |
地址 |
| csDate |
string |
出生年月 |
| id |
string |
身份证号 |
| name |
string |
姓名 |
| national |
string |
民族 |
| sex |
string |
性别 |
| validTime |
string |
有效期(recognizeType类型为IDCARD且type为2反面识别时有返回值) |
| plate |
string |
车牌号(recognizeType类型为PLATE识别时有返回值) |
| vin |
string |
车牌号(recognizeType类型为VIN识别时有返回值) |
插件在页面调用示例
<template>
<view>
<button @click="recognizeIDCARD">识别身份证信息</button>
<button @click="recognizeVIN">识别VIN信息</button>
<button @click="recognizePlate">识别车牌信息</button>
<view class="result" style="padding: 20px;width: 100%;height: 300px;background-color: #f2f2f2;">
<textarea name="result" id="test" cols="30" rows="10" v-model="result"
placeholder="识别内容将显示在这里..."></textarea>
</view>
</view>
</template>
<script setup>
import { openCardCamera } from '@/uni_modules/xwq-mlkit-card-text';
import { InitParamsType, CallbackValType, ErrorCallbackValType } from '@/uni_modules/xwq-mlkit-card-text/utssdk/interface.uts';
const result = ref('')
/**
* 识别VIN
*/
const recognizeVIN = () => {
openCardCamera({
recognizeType: "VIN", //识别类型,默认身份证,可选VIN、PLATE(车牌)、IDCARD(身份证)
type: 1,//当recognizeType为IDCARD时生效,1-正面 2-反面
scanBoxHeight: 200,//识别框高度设置
scanBoxTitle: "请将VIN对准在框内,自动识别内容", //识别框顶部的文案内容
scanBoxTitleColor: "#ffff00",//识别框顶部的文案内容颜色
scanBoxTitleSize: 16,//识别框顶部的文案内容字号大小
success: (val : CallbackValType) => {
console.log('识别结果===type:', val.type + `,val: ${val.option.vin}`)
result.value = JSON.stringify(val)
},
error: (val : ErrorCallbackValType) => {
console.log('识别失败==', val);
uni.showToast({
title: "没有识别到VIN信息"
})
},
cancel: () => {
console.log('用户取消扫码')
}
} as InitParamsType);
};
/**
* 识别身份证信息
*/
const recognizeIDCARD = () => {
openCardCamera({
recognizeType: "IDCARD", //识别类型,默认身份证,可选VIN、PLATE(车牌)、IDCARD(身份证)
type: 1,//当recognizeType为IDCARD时生效,1-正面 2-反面
scanBoxHeight: 600,//识别框高度设置
scanBoxTitle: "请将身份证对准在框内,自动识别内容", //识别框顶部的文案内容
scanBoxTitleColor: "#ffff00",//识别框顶部的文案内容颜色
scanBoxTitleSize: 16,//识别框顶部的文案内容字号大小
success: (val : CallbackValType) => {
console.log('识别结果===type:', val.type + `,val: ${JSON.stringify(val.option)}`)
result.value = JSON.stringify(val)
},
error: (val : ErrorCallbackValType) => {
console.log('识别失败==', val);
uni.showToast({
title: "没有识别到IDCARD信息"
})
},
cancel: () => {
console.log('用户取消扫码')
}
} as InitParamsType);
};
//识别车牌信息
const recognizePlate = () => {
openCardCamera({
recognizeType: "PLATE", //识别类型,默认身份证,可选VIN、PLATE(车牌)、IDCARD(身份证)
type: 1,//当recognizeType为IDCARD时生效,1-正面 2-反面
scanBoxHeight: 200,//识别框高度设置
scanBoxTitle: "请将PLATE对准在框内,自动识别内容", //识别框顶部的文案内容
scanBoxTitleColor: "#ffff00",//识别框顶部的文案内容颜色
scanBoxTitleSize: 16,//识别框顶部的文案内容字号大小
success: (val : CallbackValType) => {
console.log('识别结果===type:', val.type + `,val: ${val.option.plate}`)
result.value = JSON.stringify(val)
},
error: (val : ErrorCallbackValType) => {
console.log('识别失败==', val);
uni.showToast({
title: "没有识别到PLATE信息"
})
},
cancel: () => {
console.log('用户取消扫码')
}
} as InitParamsType);
}
</script>
<style>
</style>
<template>
<view>
<button @click="recognizeIDCARD">识别身份证信息</button>
<button @click="recognizeVIN">识别VIN信息</button>
<button @click="recognizePlate">识别车牌信息</button>
<view class="result" style="padding: 20px;width: 100%;height: 300px;background-color: #f2f2f2;">
<textarea name="result" id="test" cols="30" rows="10" v-model="result"
placeholder="识别内容将显示在这里..."></textarea>
</view>
</view>
</template>
<script setup>
import { openCardCamera } from '@/uni_modules/xwq-mlkit-card-text';
const result = ref('')
/**
* 识别VIN
*/
const recognizeVIN = () => {
openCardCamera({
recognizeType: "VIN", //识别类型,默认身份证,可选VIN、PLATE(车牌)、IDCARD(身份证)
type: 1,//当recognizeType为IDCARD时生效,1-正面 2-反面
scanBoxHeight: 200,//识别框高度设置
scanBoxTitle: "请将VIN对准在框内,自动识别内容", //识别框顶部的文案内容
scanBoxTitleColor: "#ffff00",//识别框顶部的文案内容颜色
scanBoxTitleSize: 16,//识别框顶部的文案内容字号大小
success: (val) => {
console.log('识别结果===type:', val.type + `,val: ${val.option.vin}`)
result.value = JSON.stringify(val)
},
error: (val) => {
console.log('识别失败==', val);
uni.showToast({
title: "没有识别到VIN信息"
})
},
cancel: () => {
console.log('用户取消扫码')
}
});
};
/**
* 识别身份证信息
*/
const recognizeIDCARD = () => {
openCardCamera({
recognizeType: "IDCARD", //识别类型,默认身份证,可选VIN、PLATE(车牌)、IDCARD(身份证)
type: 1,//当recognizeType为IDCARD时生效,1-正面 2-反面
scanBoxHeight: 600,//识别框高度设置
scanBoxTitle: "请将身份证对准在框内,自动识别内容", //识别框顶部的文案内容
scanBoxTitleColor: "#ffff00",//识别框顶部的文案内容颜色
scanBoxTitleSize: 16,//识别框顶部的文案内容字号大小
success: (val) => {
console.log('识别结果===type:', val.type + `,val: ${JSON.stringify(val.option)}`)
result.value = JSON.stringify(val)
},
error: (val) => {
console.log('识别失败==', val);
uni.showToast({
title: "没有识别到IDCARD信息"
})
},
cancel: () => {
console.log('用户取消扫码')
}
});
};
//识别车牌信息
const recognizePlate = () => {
openCardCamera({
recognizeType: "PLATE", //识别类型,默认身份证,可选VIN、PLATE(车牌)、IDCARD(身份证)
type: 1,//当recognizeType为IDCARD时生效,1-正面 2-反面
scanBoxHeight: 200,//识别框高度设置
scanBoxTitle: "请将PLATE对准在框内,自动识别内容", //识别框顶部的文案内容
scanBoxTitleColor: "#ffff00",//识别框顶部的文案内容颜色
scanBoxTitleSize: 16,//识别框顶部的文案内容字号大小
success: (val) => {
console.log('识别结果===type:', val.type + `,val: ${val.option.plate}`)
result.value = JSON.stringify(val)
},
error: (val) => {
console.log('识别失败==', val);
uni.showToast({
title: "没有识别到PLATE信息"
})
},
cancel: () => {
console.log('用户取消扫码')
}
});
}
</script>
<style>
</style>