uni-app实现安卓原生态调用身份证阅读器读卡库读身份证和社保卡、银行卡、IC卡等功能

DONSEE系列多功能读写器Android Uniapp API接口规范V1.0.0

本项目Uniapp调用了身份证读卡器的库文件:DonseeDeviceLib-debug.aar,该库放到nativeplugins\donsee-card\android,然后会自动加载。SDK会自动检查是否拥有USB设备权限,如没有权限,会自动进行申请,如果您的安卓设备是定制设备,遇到找不到设备时,请询问设备定制方是否开放了USB接口的系统层权限。

身份证阅读器读卡效果

社保卡读卡器读卡效果

<!--
//========================================================================
// Uniapp Android 端,调用.aar原生态读卡库
// 版权所有 广东东信智能科技有限公司
// 未经授权不允许对程序代码以任何形式任何目的的再发布
// 官方网站:http://www.eastcoms.com/
// 前端修改日期:2023.12.07
// =======================================================================
--><template><view class="content"><text class="title">{{ title }}</text><view><imagev-bind:src="imageUlr"style="width:204rpx; height: 256rpx;" ></image><viewclass="resultInfor"style="white-space: pre-wrap;">{{ result }}</view><button type="primary" @click="open">打开设备</button><button type="primary" @click="beep">蜂鸣器</button><button type="primary" @click="readIDCard">读取身份证</button><button type="primary" @click="readSSCard">读取社保卡</button><button type="primary" @click="getBankCardNo">读取银行卡</button><button type="primary" @click="readICUid">IC卡卡号</button><button type="primary" @click="close">关闭设备</button><!-- <view class="">{{result1}}</view> --></view></view>
</template><script>
const  DonseeDevice = uni.requireNativePlugin('Card-Module');export default {data() {return {title: '欢迎使用广东东信智能科技有限公司SDK',result: '请先打开读卡设备',result1:0,imageUlr: '',};},onLoad() {},methods: {open(){DonseeDevice.Donsee_Open(data => {if(data.result == 0){this.result = "打开设备成功"}else if(data.result == -2){this.result = "打开设备失败:未发现读卡器";}else if(data.result == -4){this.result = "打开设备失败:未获取usb权限";}else {this.result = "打开设备失败:"+data.result;}});},beep(){let ret =  DonseeDevice.Donsee_Beep();if(ret == 0){this.result ="蜂鸣成功";}else{this.result ="蜂鸣失败 "+ret;}},close(){let ret =  DonseeDevice.Donsee_Close();if(ret == 0){this.result ="关闭设备成功";}else{this.result ="关闭设备失败 "+ret;}},readIDCard(){let idInfo = DonseeDevice.Donsee_ReadIDCard(1);  //1:文字+照片  2:文字+照片+指纹if(idInfo.code == 0){this.result = "中文姓名:"+ idInfo.name+"\n"+"英文姓名:"+ idInfo.enFullName+"\n"//如果是Y,则需要和英文姓名备用reserveName组合才是完整姓名+"性    别:"+ idInfo.sex+"\n"+"民    族:"+ idInfo.nation+"\n"+"出身日期:"+ idInfo.birthDate+"\n"+"家庭住址:"+ idInfo.address+"\n"+"身份证号:"+ idInfo.idNO+"\n"+"签发单位:"+ idInfo.organs+"\n"+"开始有效期限:"+ idInfo.issueDate+"\n"+"结束有效期限:"+ idInfo.expireDate+"\n"+"证件类别:"+ idInfo.certType+"\n"  //0 I J Y四种证件类型+"证件版本:"+ idInfo.certVersion+"\n"+"英文姓名备用:"+ idInfo.reserveName+"\n"  +"既往版本号码:"+ idInfo.previousVersionNO+"\n"+"通行证号:"+ idInfo.passNu+"\n"+"签发数次:"+ idInfo.signCount+"\n"//+"指纹数据:"+ idInfo.figData+"\n"this.imageUlr = "data:image/png;base64,"+idInfo.headStr;  //照片base64数据}else{this.result = idInfo.code;	}},readSSCard(){let ssCardInfor = DonseeDevice.Donsee_ReadSSCard();if(ssCardInfor.code == 0){this.result = "姓    名:"+ ssCardInfor.name+"\n"+"性    别:"+ ssCardInfor.sex+"\n"+"民    族:"+ ssCardInfor.nation+"\n"+"出身日期:"+ ssCardInfor.birthDate+"\n"+"城市代码:"+ ssCardInfor.city+"\n"+"身份证号:"+ ssCardInfor.idNO+"\n"+"社保卡号:"+ ssCardInfor.cardNO+"\n"+"开始有效期限:"+ ssCardInfor.issueDate+"\n"+"结束有效期限:"+ ssCardInfor.expireDate+"\n"+"社保版本:"+ ssCardInfor.fullVersion+"\n"}else{this.result = ssCardInfor.code;	}},getBankCardNo(){let cardInfor = DonseeDevice.Donsee_GetBankCardNo();if(cardInfor.code == 0){this.result = "卡号:"+ cardInfor.cardNumber}else{this.result = cardInfor.code;	}},readICUid(){let cardInfor = DonseeDevice.Donsee_ReadICUid();if(cardInfor.code == 0){this.result = "卡号:"+ cardInfor.cardNumber}else{this.result = cardInfor.code;	}}}
};
</script><style>
.content {text-align: left;height: 400upx;
}
.resultInfor {text-align: left;
}.title {font-size: 36upx;color: #8f8f94;
}button {margin-top: 20upx;margin-bottom: 20upx;
}.button-sp-area {margin: 0 auto;width: 60%;
}.content {text-align: center;height: 400upx;
}.wrapper {flex-direction: column;justify-content: center;
}.button {width: 200px;margin-top: 20px;margin-left: 20px;padding-top: 20px;padding-bottom: 20px;border-width: 2px;border-style: solid;border-color: #458b00;background-color: #458b00;
}.text {font-size: 30px;color: #666666;text-align: center;
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同旺科技 USB TO RS-485 定制款适配器--- 拆解(三)

内附链接 1、USB TO RS-485 定制款适配器 ● 支持USB 2.0/3.0接口&#xff0c;并兼容USB 1.1接口&#xff1b; ● 支持USB总线供电&#xff1b; ● 支持Windows系统驱动&#xff0c;包含WIN10 / WIN11系统32 / 64位&#xff1b; ● 支持Windows RT、Linux、Mac OS X、Windo…

《洛谷深入浅出进阶篇》p2568 GCD

P2568 GCD - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P2568 大致题意&#xff1a;给定正整数n&#xff0c;求1< x,y<n 且 gcd&#xff08;x&#xff0c;y&#xff09;为素数的数对&#xff08;x&#xff0c;y&#xff09;有多少对。…

一文搞懂全连接算法和它的作用

如果你是搞AI算法的同学&#xff0c;相信你在很多地方都见过全连接层。 无论是处理图片的卷积神经网络&#xff08;CNN&#xff09;&#xff0c;还是处理文本的自然语言处理&#xff08;NLP&#xff09;网络&#xff0c;在网络的结尾做分类的时候&#xff0c;总是会出现一个全…

国外小哥综合传统CGI和AI技术制作出融合Lofi音乐与人工智能动画作品

这个视频制作花费了18个小时&#xff0c;渲染则耗费了4个小时&#xff0c;使用了Midjourney、PS GenFill、After Effects和Magnific AI等工具。 国外小哥综合传统CGI和AI技术制作出融合Lofi音乐与人工智能动画作品 大致制作流程&#xff1a; Midjourney出图&#xff0c;PS Gen…

带大家做一个,易上手的家常辣子鸡

先从冰箱拿出鸡肉解冻 拿小半根葱 去掉最外面一层皮 切成小段 最备好 花椒 干辣椒 准备四五个大料 起锅烧油 这道菜需要放其他菜两到三倍的油 油温上来之后 放入干辣椒和花椒进行翻炒 等它们都烧黑之后捞出来 这样 辣味就留在油里面了 然后 倒入鸡肉 葱段 大料 然后 倒…

Qt内存管理、UI编辑器、客制化组件、弹出对话框、常用部件类

头文件的小技巧 #include <QtWidgets> // 在自动生成的 .h 里面加上此句 适用条件&#xff1a; QT 的内存管理 当父窗体被关闭时&#xff0c;子部件的内存会自动释放。 对象树是一种管理对象生命周期的机制。当一个对象被添加到另一个对象的子对象列表中时&#xff0…

docker:部署java Springboot项目

文章目录 1、打 jar 包1、创建Dockerfile3、创建镜像4、启动容器其他注意事项docker中jdk的版本命名举例&#xff1a;openjdk:11-ea-17-jre-slim举例&#xff1a;8u312-jre-nanoserver-1809 通过find找文件 1、打 jar 包 将项目打一个 jar 包&#xff0c;可以使用 IDEA 1、…

2.6 A 的 LU 分解

一、A LU 线性代数很多关键的概念实际上就是矩阵的分解&#xff08;factorization&#xff09;。原始矩阵 A A A 变成两个或三个特殊矩阵的乘积。第一个分解&#xff0c;实际上也是最重要的分解&#xff0c;来自消元法。因子 L L L 和 U U U 都是三角形矩阵&#xff0c;分…

发布“最强”AI大模型,股价大涨,吊打GPT4的谷歌股票值得投资吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 谷歌在AI领域的最新进展&#xff0c;引发投资者关注 在谷歌-C(GOOGL)谷歌-A&#xff08;GOOG&#xff09;昨日发布了最新的AI大模型Gemini后&#xff0c;其股价就出现了大幅上涨&#xff0c;更是引发了投资者的密切关注&a…

Docker-compose容器编排与容器监控

一、Docker-compose 1、概念&#xff1a; Docker-Compose 是 Docker 官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。 2、作用&#xff1a; Docker-Compose可以管理多个Docker容器组成一个应用。需要定义一个yaml格式的配置文件 docker-compose.yml&#…

Fiddler抓包模拟器(雷电模拟器)

Fiddler设置 List item 打开fiddler,的options 点击OK,重启fiddler 模拟器 更改网络设置 IP可以在电脑上终端上查看 然后在模拟器浏览器中输入IP:端口 安装证书

K8s 入门指南(一):单节点集群环境搭建

前言 官方文档&#xff1a;Kubernetes 文档 | Kubernetes 系统配置 CentOS 7.9&#xff08;2 核 2 G&#xff09; 本文为 k8s 入门指南专栏&#xff0c;将会使用 kubeadm 搭建单节点 k8s 集群&#xff0c;详细讲解环境搭建部署的细节&#xff0c;专栏后面章节会以实战代码介绍…

Vue3+ts----根据配置项,动态生成表单

这里使用的UI框架是ElementPlus&#xff0c;更换其他组件直接更换constant.ts中的type配置和对应的Form组件即可. 大家可以npm install elementplus_dy_form来体验。 思路&#xff1a; 1.这里需要使用h函数方便控制要渲染的表单 2.传递type作为组件或html元素进行渲染&#xff…

PHP基础 - 输入输出

在 PHP 中,有多种方法可以用来输出内容。下面是其中的几种: 1、echo: 这是最常见的输出语句之一,可以输出一个或多个字符串。它是一个语言结构,可以省略括号。使用示例如下: <?php // 使用 echo 语句输出一个字符串 echo "Hello, world!\n";// 可以使用…

P1035 [NOIP2002 普及组] 级数求和题解

题目 已知&#xff1a;.显然对于任意一个整数 k&#xff0c;当 n 足够大的时候,Sn​>k。 现给出一个整数k&#xff0c;要求计算出一个最小的n&#xff0c;使得Sn​>k。 输入输出样例 输入 1 输出 2 代码 #include<iostream> using namespace std; int mai…

周周爱学习之Redis重点总结

redis重点总结 在正常的业务流程中&#xff0c;用户发送请求&#xff0c;然后到缓存中查询数据。如果缓存中不存在数据的话&#xff0c;就会去数据库查询数据。数据库中有的话&#xff0c;就会更新缓存然后返回数据&#xff0c;数据库中也没有的话就会给用户返回一个空。 1.缓…

AIGC创作系统ChatGPT网站源码,Midjourney绘画,GPT联网提问/即将支持TSS语音对话功能

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

leetcode 面试题 02.02. 返回倒数第k个节点

提建议就是&#xff0c;有些题还是有联系的&#xff0c;建议就收看完 876.链表的中间节点&#xff08;http://t.csdnimg.cn/7axLa&#xff09;&#xff0c;再将这一题联系起来 面试题 02.02. 返回倒数第k个节点 题目&#xff1a; 实现一种算法&#xff0c;找出单向链表中倒数第…

这些接口自动化测试工具如果不知道,就真out了!

一、Postman Postman是一款广受欢迎的API测试工具&#xff0c;除了手动发送HTTP请求的基本功能&#xff0c;它还提供了自动化测试和脚本测试的功能&#xff0c;非常适合进行HTTP接口的自动化测试。 二、Rest-Assured Rest-Assured是一个Java库&#xff0c;专为REST服务的测试…

C++异常剖析

什么是异常&#xff1f; 在程序运行的过程中&#xff0c;我们不可能保证我们的程序百分百不出现异常和错误&#xff0c;那么出现异常时该怎么报错&#xff0c;让我们知道是哪个地方错误了呢? C中就提供了异常处理的机制。 一、异常处理的关键字 &#xff08;1&#…