中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
微信扫码分享
在返回信息CallbackParam里面code:可判断成功和失败,可以做非成功就统一处理的业务。对于双面卡证,是直接一起获得的信息,包含信息为”front”和”back”通过两个不同的信息去处理正反面的业务信息即可,这边写了个demo。
1.当点右上角取消的时候,code为-1。
2.当正常识别后,如果数据正常,那边可以按照正常业务处理;如果数据不正常,假如拿出了身份证,但是名字被盖住了,那就会返回一个错乱的数据,那边可以通过不正常的数据去判断,然后通过router.back()或者router.replace()重新跳转到识别页面。
当识别异常,比如本来需要识别的是银行卡,但是用户拿出来的是学生卡,那么就不会进行识别操作。
所以可以按照code-1为取消识别判断。只要卡证正确的情况能识别了,code都为200,然后通过实际识别到的数据去判断到底该不该成功。demo如下:
import { CardRecognition, CallbackParam, CardType } from "@kit.VisionKit"; import { hilog } from '@kit.PerformanceAnalysisKit'; import { router } from '@kit.ArkUI'; import promptAction from '@ohos.promptAction'; @Entry @Component export struct test { @State fresh:boolean=false @State para:CallbackParam|null=null build() { Stack({ alignContent: Alignment.Top }) { CardRecognition({ // 此处选择身份证类型作为示例 supportType: CardType.CARD_ID, callback: ((params: CallbackParam) => { 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){ promptAction.showToast({ message:"未进行识别,已返回!", duration:1000 })//可以根据需求自行更改promptAction类型 router.back() } else{ //可以使用某些条件,判断信息是否全面,如果不全面就说明识别信息不全,识别失败 //这里以身份证的sex为例, tips:这次存在一个小问题,如果觉得严重可以提需求单:盖住身份证人名,识别会成功,name属性为sex的目标值,sex属性为None if(!params.cardInfo?.front.sex){ promptAction.showToast({ message:"识别失败,请重试!", duration:1000 })//可以根据需求自行更改promptAction类型 router.back() } //接下来假设为未发现问题,可以进行后续操作 else{ //后续处理,可以设计存储数据, //处理完成进行跳转 promptAction.showToast({ message:"识别完成!", duration:1000 })//可以根据需求自行更改promptAction类型 router.back() } }}) }) } .width('100%') .height('100%') } }
在返回信息CallbackParam里面code:可判断成功和失败,可以做非成功就统一处理的业务。对于双面卡证,是直接一起获得的信息,包含信息为”front”和”back”通过两个不同的信息去处理正反面的业务信息即可,这边写了个demo。
1.当点右上角取消的时候,code为-1。
2.当正常识别后,如果数据正常,那边可以按照正常业务处理;如果数据不正常,假如拿出了身份证,但是名字被盖住了,那就会返回一个错乱的数据,那边可以通过不正常的数据去判断,然后通过router.back()或者router.replace()重新跳转到识别页面。
当识别异常,比如本来需要识别的是银行卡,但是用户拿出来的是学生卡,那么就不会进行识别操作。
所以可以按照code-1为取消识别判断。只要卡证正确的情况能识别了,code都为200,然后通过实际识别到的数据去判断到底该不该成功。demo如下: