uni-app(uni,读you ni,是统一的意思)是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序、快应用等多个平台,今天分享Uniapp调用手机NFC读取二代证信息的方法
第一步:Android原生工程配置,添加读卡插件远程仓库,在Android原生工程根目录的build.gradle文件,添加原生插件依赖
第二步:找我索要示例代码
// 获取 读证件的 插件
var readCardModule = uni.requireNativePlugin("csht_readcard");
// 配置参数
var config = {
'openSound': true, // 蜂鸣器开关
'openLog': true, // 日志保存开关
'readType': 2, // 1: USB 2: NFC 3:串口读卡 5:Sam离线读卡 9:NFC电子护照
'nativePageUrl': '', //如果原生界面UI不满足时,可自定义传入web网页地址,进行自定义界面。如 https://***.com/read.html
'appId': "test", // 测试APPID,商用的 appid 请务必联系我司商务进行分配
'ipAndPort': [{ // 解码服务器地址,可配置多个服务器节点。第一个为主节点,其余为备用节点。
'ip': 'yfs3.sfzydq.com',
'port': 9999
}, {
'ip': 'yjm2.sfzydq.com',
'port': 9999
}]
};
// readType设置成 3,串口读卡时,必须设置 串口文件地址、波特率 两个参数。(不需要时,可删除)
config.deviceFilePath = "/dev/ttyS0";
config.baudrate = 115200;
// readType设置成 9,读取护照时,必须添加 护照号、生日、有效期 三个参数。 (不需要时,可删除)
config.documentNumberStr = "E90342672"; // 9位护照号码
config.dateOfBirthStr = "940521"; // 出生日期,格式为 YYMMDD
config.dateOfExpiryStr = "261113"; // 有效日期,格式为 YYMMDD
// 跳转原生NFC界面,开始读卡
readCardModule.gotoNativeNFCPage(config, (ret) => {
switch (ret.type) {
case "InitState": // 初始化状态信息回调
var code = ret.code; // 状态码 参照文档状态码说明
var msg = ret.msg; // 状态信息
var status = 'code: ' + code + ' msg: ' + msg;
break;
case "ReadCardState": // 读卡状态信息回调
var code = ret.code; // 状态码 参照文档状态码说明
var msg = ret.msg; // 状态信息
var status = 'code: ' + code + ' msg: ' + msg;
break;
case "ReadICCardSuccess": // 读其他卡成功
var dataJson = 'cardType: ' + ret.cardType + '\nicNumber' + ret.icNumber;
break;
case "ReadIDCardSuccess": // 读二代证成功
var headImage = ret.base64Image;
var data = ret.idCardData;
if (data.type == 1081) { // 外国人永居证
var dataJson =
'中文姓名: ' + data.nameChinese +
'\n英文姓名: ' + data.nameEnglish +
'\n性别: ' + data.sex +
'\n生日: ' + data.birthday +
'\n国籍: ' + data.nationlity +
'\n证件号码: ' + data.id +
'\n有效期限: ' + data.startDate + '-' + data.endDate;
} else if (data.type == 1082) { // 港澳台居住证
} else {
// 中国居民二代证
var dataJson =
'姓名: ' + data.name +
'\n民族: ' + data.nation +
'\n性别: ' + data.sex +
'\n生日: ' + data.birthday +
'\n住址: ' + data.address +
'\n证件号码: ' + data.id +
'\n签发机关: ' + data.issue +
'\n有效期限: ' + data.startDate + '-' + data.endDate;
}
break;
case "ReadPassportSuccess": // 读护照成功
var headImage = ret.base64Image;
var data = ret.idCardData;
var dataJson =
'姓名: ' + data.nameOfHolder + '/' + data.primaryIdentifier + data.secondaryIdentifier +
'\n性别: ' + data.gender +
'\n生日: ' + data.dateOfBirth +
'\n国家码: ' + data.nationality +
'\n护照号码: ' + data.documentNumber +
'\n有效期: ' + data.dateOfExpiry;
break;
default:
break;
}
});
可以支持 IC卡、M1卡、绿城通学生卡、绿城通普通卡"、绿城通老年卡、社保卡、中国移动超级SIM卡、中国联通超级SIM卡、国电信超级SIM卡、
、中国居民二代证、外国居住证、港澳台居住证、国际电子护照。