IC卡读卡器web插件目前提供2种接口调用方式,一种直接调用,使用回调函数返回数据。另外一种采用异步await调用,直接返回数据。 这两种方式都有自己的优势,回调方式适合自动寻卡或者自动读取IC卡数据,刷卡自动就能返回数据,web页面只需要等待数据即可。
异步调用方式更适合一系列的流程,整个流程与代码保持一致,可读性好,思路清晰。
需要注意的是,回调方式引用的js是YOWOCloudRFIDReader.js,为异步await方式引用的js是YOWOCloudRFIDReaderAsync.js。
一、回调方式:
采用回调方式,首先需要声明回调函数rfidreader.onResult,代码如下所示:
rfidreader.onResult(function(resultdata)//回调函数声明
{
switch(resultdata.FunctionID)//根据FunctionID来判断api接口
{ case 14:
//返回版本号码,初始化时会自动返回 break;
case 5:
...
break;
}
}
);
然后就可以在网页种使用js调用api接口了, 如下所示:
rfidreader.KeyMode=0;//密钥认证类型为A密钥
rfidreader.KeyStringMode=0;//密钥字符串为16进制字符串
rfidreader.KeyString="FFFFFFFFFFFF";//默认密钥
rfidreader.Repeat=0;//不重复执行接口
rfidreader.M1ReadBlock(BlockID, 0);//调用接口,读IC卡数据块
这样调用读块接口后,读到的数据就到回调函数了,在回调函数里面处理返回的数据。
二、异步调用方式:
采用异步调用方式,最大的好处就是不破坏程序结构,按顺序往下执行。例如可以先读IC卡,然后写IC卡,整个代码就按照这个流程走下去。
rfidreader.KeyMode=0;//密钥认证类型为A密钥
rfidreader.KeyStringMode=0;//密钥字符串为16进制字符串
rfidreader.KeyString="FFFFFFFFFFFF";//默认密钥
rfidreader.Repeat=0;//不重复执行接口
let result = await rfidreader.M1ReadBlock(BlockID, 0);//采用异步方式读数据块
if(result.Result>0)
{
let result2 = await rfidreader.M1WriteBlock(BlockID, Data,0);//读成功后,可以直接写
}
异步调用方式,可以实现多个流程按照顺序语句执行,对于程序结构有很多益处。在实际项目种选择那种调用方式,还是取决于项目的需求,选择一个适合的就行。
标签:异步,调用,方式,IC卡,优缺点,rfidreader,密钥 From: https://blog.csdn.net/Coodor/article/details/143108602