更新记录

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

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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位数字

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android:"android.permission.INTERNET","android.permission.ACCESS_WIFI_STATE","android.permission.ACCESS_NETWORK_STATE","android.permission.NFC" iOS:NFCReaderUsageDescription

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件使用的 native SDK 及其官方网址:https://cloud.tencent.com/document/product/1007/71929

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

作者未提供license.md

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问