更新记录
1.2.0(2023-06-29) 下载此版本
Android 优化识别体验。
1.1.0(2023-06-12) 下载此版本
更新 Android 插件,解决 Android13 上 crash 问题.
1.0.2(2023-06-07) 下载此版本
1.0.1 提交审核。
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:9 - 16 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
[TOC]
NFC OCR SDK uni 接入文档
1. 插件简介
接入插件之前,建议阅读《实证 NFC SDK 接入》 的内容。
文档地址:https://cloud.tencent.com/document/product/1007/73225。
2. 注意事项
2.1 iOS 接入注意事项
2.2.1 支持的设备
本文档介绍了接入 NFC OCR SDK 接口, NFC 读取居民身份证需要 iPhone 7 及以上,iOS14.5 及以上.
2.1.1 bundleId 注意事项
在 uni APP 申请 appKey 的时候,iOS bundle id 必须开启 NFC Tag Reading
,否则无法正常使用 NFC 功能!
配置参考文档:https://cloud.tencent.com/document/product/1007/73229
2.1.1 info.plist 配置注意事项
详细参考参考官方文档 《iOS原生应用配置文件和资源》。
文档地址:https://zh.uniapp.dcloud.io/tutorial/app-nativeresource-ios.html
插件要使用 NFC 功能,iOS 端需要配置 info.plist,需要配置如下两个 key 的内容:
com.apple.developer.nfc.readersession.iso7816.select-identifiers
NFCReaderUsageDescription
具体配置示例如下。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
<string>F049442E43484E</string>
<string>A0000002471001</string>
</array>
<key>NFCReaderUsageDescription</key>
<string>使用NFC 读卡功能</string>
</dict>
</plist>
2.2 Android 接入配置
3. 接入示例
3.1 获取签名
获取签名数据,签名信息获取方式参考文档:https://cloud.tencent.com/document/product/1007/73391。
3.2 插件使用
3.2.1 插件引用
插件名称为 DC-WBNFCReader
,使用前引入插件。
const nfcPlugin = uni.requireNativePlugin('DC-WBNFCReader');
3.2.1 公共参数说明
使用插件进行身份证、返乡证识别的时候,需要传入传入一些公共参数,他们包括:
- appId
- nonce
- userId
- sign
- ocrCertId
- orderNo
这些参数定义参考官方文档:https://cloud.tencent.com/document/product/1007/73391。
version 字段是是一个字符串,当前传入的值为 1.0.0.
withUI 字段表示是否调用带 UI 界面的 SDK,传入字符串 "1" 表示带 UI,传入字符串 "0" 表示不带 UI.
result 中返回识别结果,result 的格式如下:
{
"code": 1,
"status":"failed",
"res":{}
}
外层 code 标识业务结果:
- 0,表示识别成功,此时 res 是一个 json 结构,表示识别结果
- 1,表示识别失败,此时 res 返回具体的错误 code、message
3.2.2 身份证识别
调用如下接口进行身份证识别。
nfcPlugin.startIDCardNFCReaderService({
version: "1.0.0",
appId: nfc_appid,
nonce: nfc_nonce,
userId: nfc_userId,
sign: res.data.sign,
ocrCertId: res.data.ocrCertId,
orderNo: nfc_orderNo,
withUI: withUI
}, result => {
console.log(result);
});
3.2.3 返乡证识别
调用如下结果进行返乡证识别,接口调用如下。
nfcPlugin.startPassportReaderService({
version: "1.0.0",
appId: nfc_appid,
nonce: nfc_nonce,
userId: nfc_userId,
sign: res.data.sign,
ocrCertId: res.data.ocrCertId,
orderNo: nfc_orderNo,
withUI: withUI,
passportNumber: 'passportNumber',
dateOfBirth: 'dateOfBirth',
expiryDate: 'expiryDate',
}, result => {
console.log(
"【uni log】startIDCardNFCReaderService callback ================> result."
);
console.log(result);
this.front_recognize_result = Object.keys(result.res).map((key) => {
return [key, result['res'][key]];
});
});
注意,返乡证识别需要额外传入证件上的三个参数:
- passportNumber,旅行证件编号
- dateOfBirth, 出生日期 6位数字
- expiryDate,截止日期 6位数字