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>
	
			     <image
			          v-bind:src="imageUlr"
			         style="width:204rpx; height: 256rpx;" 
					  >
			        </image>
			<view
			class="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>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于物联网仪表ADW300 远传电表的详细介绍-安科瑞 蒋静

1概述 ADW300无线计量仪表主要用于计量低压网络的三相有功电能&#xff0c;具有体积小、精度高、功能丰富等优点&#xff0c;并且可选通讯方式多&#xff0c;可支持 RS485 通讯和 Lora、NB、4G、wifi 等无线通讯方式&#xff0c;增加了外置互感器的电流采样模式&#xff0c;从而…

数据结构与算法(五)回溯算法(Java)

目录 一、简介1.1 定义1.2 特性1.3 结点知识补充1.4 剪枝函数1.5 使用场景1.6 解空间1.7 实现模板 二、经典示例2.1 0-1 背包问题2.2 N皇后问题 一、简介 1.1 定义 回溯法&#xff08;back tracking&#xff09;是一种选优搜索法&#xff0c;又称为试探法&#xff0c;按选优条…

为什么 AWS 数据库不讲 HTAP

在 AWS re:Invent 2023 掌门人 Adam Selipsky 的 Keynote 上&#xff0c;数据库方面最重磅的主题是 Zero-ETL&#xff0c;从 TP 数据库 (RDS, Aurora, DynamoDB) 同步数据到 AP 数据库 (Redshift)。 Zero-ETL 是 AWS 在去年 re:invent 2022 上推出的概念&#xff0c;今年则继…

网络层之IP组播

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…

【力扣】206.反转链表

206.反转链表 这道题有两种解法&#xff0c;但不只有两种&#xff0c;嘿嘿。 法一&#xff1a;迭代法 就是按循序遍历将每一个指针的指向都给改了。比如说1——>2——>3改为null<——1<——2<——3这样。那这里以第二个结点为例&#xff0c;想一想。我想要指向…

如何在Linux上部署1Panel运维管理面板并远程访问内网Web端管理界面

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…

BPM、ERP、OA 各自的功能和特点是什么?怎么配合使用?

OA、BPM、ERP几乎是任何一家企业都会接触到的信息管理系统及程序。 首先&#xff0c;我从定义上理清BPM、ERP和OA ERP(Enterprise Resource Planning,企业资源计划)&#xff0c;一般围绕供应链、生产制造和财务为核心。 BPM&#xff08;business process management&#xf…

智能优化算法应用:基于野马算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于野马算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于野马算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.野马算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

如何使用Net2FTP轻松部署本地Web文件管理器并远程访问管理内网资源?

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…

Cocos Creator加入图片没有被识别

原因&#xff0c;需要更换类型&#xff0c;选择下图中的类型

响应式编程又变天了?看JDK21虚拟线程如何颠覆!

本文解释为啥会有响应式编程&#xff0c;为什么它在开发者中不太受欢迎&#xff0c;以及引入 Java 虚拟线程后它可能最终会消失。 命令式风格编程一直深受开发者喜爱&#xff0c;如 if-then-else、while 循环、函数和代码块等结构使代码易理解、调试&#xff0c;异常易追踪。然…

Word 在页眉或页脚中设置背景颜色

目录预览 一、问题描述二、解决方案三、参考链接 一、问题描述 如何在word的页眉页脚中设置背景色&#xff1f; 二、解决方案 打开 Word 文档并进入页眉或页脚视图。在 Word 2016 及更高版本中&#xff0c;你可以通过在“插入”选项卡中单击“页眉”或“页脚”按钮来进入或者…

移动云“遇见大咖”|玻色量子副总裁巨江伟:超越摩尔定律的新型计算革命

移动云MVP&#xff0c;作为产品共建专家、关键意见领袖及技术布道者&#xff0c;帮助开发者更好地了解和使用移动云。开发者社区希望携手移动云MVP&#xff0c;与开发者共生、共赢、共成长。 8月31日&#xff0c;移动云开发者社区“遇见大咖”系列活动第2期——“[量子计算]超越…

用的云服务器一直被ddos攻击怎么解决

德迅云安全在给客户提供网络安全解决方案的时候&#xff0c;经常会有遇到不少客户&#xff0c;是再用的云服务器被攻击了&#xff0c;来询问德迅云有什么方案来解决&#xff1f;其实目前的攻击主要都是DDOS攻击了&#xff0c;服务器的攻击方式&#xff0c;常见的也就是这几种了…

Apache Hive(部署+SQL+FineBI构建展示)

Hive架构 Hive部署 VMware虚拟机部署 一、在node1节点安装mysql数据库 二、配置Hadoop 三、下载 解压Hive 四、提供mysql Driver驱动 五、配置Hive 六、初始化元数据库 七、启动Hive(Hadoop用户) chown -R hadoop:hadoop apache-hive-3.1.3-bin hive 阿里云部…

彻底解决module java.base does not “opens java.io“

需求背景 最近在使用android studio导入hbuilder的HBuilder-Integrate-AS工程时候报错&#xff0c;错误消息如下两种。 错误描述 第一种 Failed to notify dependency resolution listener. void org.gradle.api.artifacts.DependencySubstitutions$Substitution.with(org.g…

IDEA中配置Git

Git 在IDEA中使用Git1 在IDEA中配置Git2 在IDEA中使用Git2.1在IDEA中创建工程并将工程添加至Git2.2 将文件添加到暂存区2.3 提交文件2.4 将代码推送到远程仓库2.5 从远程仓库克隆工程到本地2.6 从远程拉取代码2.7 版本对比2.8 创建分支2.9 切换分支2.10 分支合并 3 使用IDEA进行…

跨境电商平台投资智谋:全球化布局的策略之道

随着全球数字化浪潮的涌动&#xff0c;跨境电商平台在全球商业舞台上扮演着越来越重要的角色。其全球化布局的策略之道成为业界瞩目的焦点。 本文将深入探讨跨境电商平台投资的智谋&#xff0c;分析其全球化布局的关键策略&#xff0c;以及在这个竞争激烈的领域中脱颖而出的成…

数据库数据恢复—sqlserver数据库文件被加密,文件名被篡改的数据恢复案例

SQLServer数据库故障&#xff1a; 某公司服务器上的SQLServer数据库被加密&#xff0c;无法使用。被加密的数据库有2个&#xff0c;数据库的MDF、LDF、log文件名字被篡改。 数据库被加密截图&#xff1a; 数据库备份被加密&#xff0c;文件名字被篡改&#xff1a; SQLServer数…

在JSP项目中编写一个接口返回JSON 供JSP界面异步请求数据

首先 我们要引入json处理的依赖工具 在 pom.xml文件的 dependency 标签中加入如下代码 <dependency><groupId>com.googlecode.json-simple</groupId><artifactId>json-simple</artifactId><version>1.1.1</version> </dependenc…