当CardRecognitionResult中code为1008701001时,表明未识别;当code为200时,通过实际识别到的数据来判断是否识别成功;如果识别数据正确,则进一步处理;如果数据错误,可使用Class (Router)重新跳转到识别页面。示例代码如下:
import { CardRecognition, CardRecognitionResult, CardType } from '@kit.VisionKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { PromptAction } from '@kit.ArkUI';
const TAG: string = 'CardRecognitionPage';
@Entry
@Component
struct test {
@State para: CardRecognitionResult | null = null;
promptAction: PromptAction = this.getUIContext().getPromptAction();
build() {
Stack({ alignContent: Alignment.Top }) {
CardRecognition({
// 此处选择身份证类型作为示例
supportType: CardType.CARD_ID,
callback: ((params: CardRecognitionResult) => {
this.para = params;
hilog.info(0x0001, TAG, `params code: ${params.code}`);
hilog.info(0x0001, TAG, `params cardType: ${params.cardType}`);
hilog.info(0x0001, TAG, `params cardInfo front: ${JSON.stringify(params.cardInfo?.front)}`);
hilog.info(0x0001, TAG, `params cardInfo back: ${JSON.stringify(params.cardInfo?.back)}`);
// params.code是-1说明是关闭,识别到后要退出
if (params.code === -1) {
this.promptAction.showToast({
message: '未进行识别,已返回!',
duration: 1000
}); // 伙伴可以根据需求自行更改promptAction类型
this.getUIContext().getRouter().back(1);
} else {
// 可以使用某些条件,判断信息是否全面,如果不全面就说明识别信息不全,识别失败
if (!params.cardInfo?.front.sex) {
this.promptAction.showToast({
message: '识别失败,请重试!',
duration: 1000
}); // 可以根据需求自行更改promptAction类型
this.getUIContext().getRouter().back(1);
}
// 接下来假设为未发现问题,可以进行后续操作
else {
// 后续处理,可以设计存储数据,
// 处理完成进行跳转
this.promptAction.showToast({
message: '识别完成!',
duration: 1000
}); // 可以根据需求自行更改promptAction类型
this.getUIContext().getRouter().back(1);
}
}
})
});
}
.width('100%')
.height('100%');
}
} Q:目前OCR识别主要支持一些常见的文档类型,如身份证和名片等。对于一些特定的小票、营业执照、发票和价签等,这些类型不在默认支持范围内。是否可以通过自定义识别插槽来实现这些特定场景的OCR识别?
A:当前提供了通用文字识别API,可用于识别通用文字。
Q:有无不区分识别身份证正反面的API?
A:现阶段的API都是需要传CardSide的,默认身份证为人像面。
Q:关于Vision Kit的活体识别、身份证识别和银行卡识别,这些功能是否可以在Next系统上使用,以及目前的免费使用期限和后续收费详情。
A:Vision Kit是Next系统下的功能模块,其使用受到相关约束与限制,视觉服务目前实施试用期免费的计费政策,试用期至2026年12月31日,后续有新的收费政策时,会在官网提前通知。
Q:使用卡证识别控件,在识别银行卡卡号和有效期在背面的主题卡(含异形卡)会出现卡顿、识别错误等情况,且不能识别竖版银行卡片。
A:当前针对银行卡的卡证识别功能已优化,现已支持非标卡、竖版银行卡的识别功能。