Skip to main content

读卡器 JavaScriptApi

概述

读卡器相关接口,JavaScript 对应对象为 window.CardReader

开始读卡

void startReadCard(String params, boolean isLoop, SimpleCallBack callBack)

开始读卡,设置读卡器参数,用来配置需要读取的卡类型、卡片的读取方式、卡片的读取顺序。如果不调用该接口,默认读取射频卡、身份证、社保卡。

参数

ParamDescription
paramsjson格式参数
isLoop是否循环读卡 false:读到卡后立即停止,否则一直读 true:读到卡后还继续读
callBack结果回调
调用示例
let parameters = [
{
type: "idCard",
},
{
type: "socialSecurityCard",
},
{
type: "rfidCard",
parameter: {
sector: 1,
block: 1,
passwordType: 0,
password: "FFFFFFFFFFFF",
},
},
{
type: "icCard",
parameter: {
type: 1,
offset: 32,
length: 16,
},
},
];
// 参数中数组的顺序代表读卡器读卡的顺序,如果只需要读取某一种卡,只需要传入该卡的参数即可
// idCard: 身份证 socialSecurityCard: 社保卡 rfidCard: 射频卡,例如 M1 卡 icCard: IC卡

// rfidCard 中参数定义如下:
// sector: 扇区号,block: 块号,passwordType: 密码类型,password: 密码

// icCard 中参数定义如下:
// type: IC 卡类型 1-4428卡 2-4442卡 offset: 偏移量,length: 长度
window.CardReader.startReadCard(JSON.stringify(parameters), false, function(result) {
// result: {"type":"icCard","data":"卡片信息"}, type: 卡类型,data: 卡片信息
// 回调函数中的 result 为读卡结果,是一个对象,包含 type 和 data 两个属性,根据 type 的值来判断卡类型,根据不同的卡类型,data 的值也不同
// icCard: data 为卡号,例如:{"type":"icCard","data":"1234567890"}
// rfidCard: data 为卡号,例如:{"type":"rfidCard","data":"1234567890"}
// socialSecurityCard: data 为社保卡信息,{"type":"socialSecurityCard","data":{"birth":"1989xxxx","cardNumber":"xxxx","idNumber":"xxxx","name":"xxxx","socialCardRegionCode":"FFFFFF"}}
// idCard: data 为身份证信息,{"type":"idCard","data":{"address":"甘肃省xxx","birth":"1990xxxx","chinaName":"xx","dateEnd":"xx","dateStart":"xx","id":"xx","issued":"xx公安局","nation":"汉","reserved":"","sex":"男","type":"","imagePath":"/sdcard/shine/id.jpg"}}
console.log(result);
});

设置读卡参数

void setParameters(String parameters)

设置读卡器参数,用来配置需要读取的卡类型、卡片的读取方式、卡片的读取顺序。如果不调用该接口,默认读取射频卡、身份证、社保卡。

参数

ParamDescription
parametersjson格式参数
调用示例
let parameters = [
{
type: "idCard",
},
{
type: "socialSecurityCard",
},
{
type: "rfidCard",
parameter: {
sector: 1,
block: 1,
passwordType: 0,
password: "FFFFFFFFFFFF",
},
},
{
type: "icCard",
parameter: {
type: 1,
offset: 32,
length: 16,
},
},
];
// 参数中数组的顺序代表读卡器读卡的顺序,如果只需要读取某一种卡,只需要传入该卡的参数即可
// idCard: 身份证 socialSecurityCard: 社保卡 rfidCard: 射频卡,例如 M1 卡 icCard: IC卡

// rfidCard 中参数定义如下:
// sector: 扇区号,block: 块号,passwordType: 密码类型,password: 密码

// icCard 中参数定义如下:
// type: IC 卡类型 1-4428卡 2-4442卡 offset: 偏移量,length: 长度
window.CardReader.setParameters(parameters);

读卡

void readCard(SimpleCallBack callBack)

开始读卡接口,调用后直到读卡成功才会执行回调,否则会一直循环读卡。

参数

ParamDescription
callBack结果回调
调用示例
window.CardReader.readCard(function (result) {
// result: {"type":"icCard","data":"卡片信息"}, type: 卡类型,data: 卡片信息
// 回调函数中的 result 为读卡结果,是一个对象,包含 type 和 data 两个属性,根据 type 的值来判断卡类型,根据不同的卡类型,data 的值也不同
// icCard: data 为卡号,例如:{"type":"icCard","data":"1234567890"}
// rfidCard: data 为卡号,例如:{"type":"rfidCard","data":"1234567890"}
// socialSecurityCard: data 为社保卡信息,{"type":"socialSecurityCard","data":{"birth":"1989xxxx","cardNumber":"xxxx","idNumber":"xxxx","name":"xxxx","socialCardRegionCode":"FFFFFF"}}
// idCard: data 为身份证信息,{"type":"idCard","data":{"address":"甘肃省xxx","birth":"1990xxxx","chinaName":"xx","dateEnd":"xx","dateStart":"xx","id":"xx","issued":"xx公安局","nation":"汉","reserved":"","sex":"男","type":"","imagePath":"/sdcard/shine/id.jpg"}}
});

停止读卡

void stopReadCard()

停止读卡

调用示例
window.CardReader.stopReadCard();

是否正在读卡

boolean isReadingCard()

判断是否正在读卡

返回值

TypeDescription
boolean是否正在读卡
调用示例
window.CardReader.isReadingCard();