更新记录

1.0.5(2022-03-14)

增加serial串口识别

1.0.4(2021-10-13)

增加性别sex识别字段

1.0.3(2021-09-13)

优化内部调用方法,性能等

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


前言

ZKTeco的android身份证识别,中控智慧身份证读取

功能

  • 识别身份证信息,支持居民身份证、港澳台居住证、外国人永居证
  • 支持身份证图片保存到本地,或转成base64
  • 支持USB、serial串口识别

wrs-idr组件


var wrsidr = uni.requireNativePlugin("wrs-idr");

方法

  • wrsidr.requestPermission(); 请求权限,放到onLoad函数里调用即可

  • wrsidr.connect() 开始连接身份证识别机器

USB连接:


                var params = {};
                params.type = "USB";
                params.connectParams = {
                    "param.key.vid": 1024,
                    "param.key.pid": 50010
                };
                var resp = wrsidr.connect(params);
                if(isString(resp)) {
                    console.log("testMap is String");
                    resp = JSON.parse(resp);
                } 
                if(resp.code == 0) {
                    this.info = "连接成功";
                } else {
                    var respStr = JSON.stringify(resp);
                    this.info = "连接失败:" + respStr;
                }

serial串口连接:


                var params = {};
                params.type = "SERIALPORT";
                params.connectParams = {
                    "param.key.serialname": this.serialname,
                    "param.key.baudrate": 115200
                };
                var resp = wrsidr.connect(params);
                if(isString(resp)) {
                    console.log("testMap is String");
                    resp = JSON.parse(resp);
                } 
                if(resp.code == 0) {
                    this.info = "连接成功";
                } else {
                    var respStr = JSON.stringify(resp);
                    this.info = "连接失败:" + respStr;
                }
  • wrsidr.read(params) 读取身份证信息,如果需要实时读取,需要创建定时器来实时读取

var params = {};
params.saveImageFilePath = "/sdcard/Download/face.png"; // 身份证照片是否保存到这个路径
params.needBase64Image = false; // 返回的数据是否需要包含base64图片
var resp = wrsidr.read(params);
this.info = JSON.stringify(resp);
  • wrsidr.disConnect() 断开连接

完整demo

index.nvue


<template>
    <div>
        <text>IDRDemo</text>
        <uni-easyinput v-model="serialname" placeholder="请输入串口"></uni-easyinput>
        <button @click="connect()">连接</button>
        <button @click="read()">读卡</button>
        <button @click="disConnect()">断开</button>
        info:{{info}}
    </div>
</template>

<script>
    import {
        isString,
        isObject,
        isType
    } from '@/utils/is_type.js';
    var wrsidr = uni.requireNativePlugin("wrs-idr");
    export default {
        data() {
            return {
                info: '',
                serialname: "/dev/ttyS1"
            }
        },
        onLoad() {
            // wrsidr.requestPermission();

        },
        methods: {
            connect: function() {
                var params = {};
                params.type = "SERIALPORT";
                params.connectParams = {
                    "param.key.serialname": this.serialname,
                    "param.key.baudrate": 115200
                };
                var resp = wrsidr.connect(params);
                if(isString(resp)) {
                    console.log("testMap is String");
                    resp = JSON.parse(resp);
                } 
                if(resp.code == 0) {
                    this.info = "连接成功";
                } else {
                    var respStr = JSON.stringify(resp);
                    this.info = "连接失败:" + respStr;
                }
            },
            read: function() {
                var params = {};
                params.saveImageFilePath = "/sdcard/Download/face.png"; // 身份证照片是否保存到这个路径
                params.needBase64Image = false; // 返回的数据是否需要包含base64图片
                var resp = wrsidr.read(params);
                this.info = JSON.stringify(resp);
            },
            disConnect: function() {
                wrsidr.disConnect();
                this.info = "已经断开连接";
            }
        }
    }
</script>

<style>

</style>

如果觉得可以就点个👍吧,欢迎粉丝收藏,土豪打赏,您的关注就是我们创作的动力!

隐私、权限声明

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

android: wrsidr.requestPermission() com.zkteco.biometric.idrdemo.USB_PERMISSION 是ZKTeco的USB业务权限

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

插件不采集任何数据

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

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