|
发表于 2017-6-7 17:16:49
|
显示全部楼层
本帖最后由 cn86739 于 2017-6-7 18:13 编辑
如何获取rfid卡的id号,不可改的那个id号,不是nfc自己擦写的数据。
首先绑定侦听 if(window.nfc)window.nfc.addTagDiscoveredListener(myNfcListener1, success1, failure1);
这个代码要放到页面加载完成后,最好是点扫码按钮的时候开始侦听。
function myNfcListener1(NfcEvent) {
// alert("检测到标签");
var arr=NfcEvent.tag.id;
//说明一下 , 这个arr获取到的是一个数组,数组里面很奇怪, 还有负数,类似这种 [45,-18,98,-78] 首先要把负数转成正数,摸索了一天,发现转成正数就是把负数加上 256 得到 [45,238,98,178]。得到的这个正数的数组的每一项是一个十六进制转成十进制的数,所以先把他们还原成十六进制 结果就是 [2d,ee,62,b2],然后把这个数组倒序一下 连接一下 得到字符串 b262ee2d,然后把这个字符串当成16进制转成十进制,得到的就是卡的id了,像这个卡的id就是 2992827949。 完全是自己摸索试出来的结果啊,坑了去了。。。
var arr2="";
for(var i=arr.length-1;i>=0;i--){
var xx=arr;
if(xx<0) xx=256+xx;
var cc=xx.toString(16);
if(cc.length<2) cc="0"+cc;
if(cc=="0") cc="00";
arr2+=cc;
}
var codeid = parseInt(arr2,16);
// codeid 就是得到的卡的id。
if(window.nfc)window.nfc.removeTagDiscoveredListener(myNfcListener1, success1, failure1);
}
//这是侦听事件成功,并不是侦听到数据。
function success1(result) {
//alert('success1:'+result);
}
//添加侦听失败
function failure1(reason) {
alert("Failed to add listener1");
}
|
|