ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

web调用IC卡读卡器开发第六章--NFC标签NDEF数据

2021-05-21 09:30:26  阅读:338  来源: 互联网

标签:web NFC -- 标签 URI NDEF resultdata Type


WEB读写NDEF数据

NFC标签NDEF格式介绍

NDEF格式是NFC论坛定义的一种标准数据交换格式,有了这种数据格式,各种NFC设备就可以直接读取或者写入所需要的数据,而不需要事先做约定。友我科技全系列NFC读写器都支持NDEF格式。
NDEF格式约定了很多NDEF数据类型uri,用于解析后面的数据,常用的NDEF数据类型uri有如下:
  0: NDEF Text Type:
  1: NDEF URI Type, http://www.:
  2: NDEF URI Type, https://www.:
  3:NDEF URI Type, http://:
  4:NDEF URI Type, https://:
  5:NDEF RTD URI Type, tel::
  6:NDEF RTD URI Type, mailto::
  7:NDEF RTD URI Type: sms::
  NDEF数据格式URI有更多的格式定义,具体可以参考NDEF相关技术文档。

友我科技WEB插件NDEF接口

友我科技IC卡读卡器WEB插件系统支持NDEF格式的写入和读取,支持的卡有M1卡,NTAG等NFC标签。有4个接口可以用于NDEF的操作。

增加记录到NDEF列表,此函数不操作标签

NDEF_AddRecord(URI, DataStr)

参数:
URI: NDEF记录的类型,常用的类型如下:
0: NDEF Text Type:
  1: NDEF URI Type, http://www.:
  2: NDEF URI Type, https://www.:
  3:NDEF URI Type, http://:
  4:NDEF URI Type, https://:
  5:NDEF RTD URI Type, tel::
  6:NDEF RTD URI Type, mailto::
  7:NDEF RTD URI Type: sms::
DataStr:记录的字符串值。
回调函数返回结果:

FunctionID=51,
Result:数字,函数执行后的返回值,
UID:自定义的序号,
strData:无

清除所有NDEF记录,此函数不操作标签

NDEF_ClearAllRecords()

参数:无
回调函数返回结果:

FunctionID=52,
Result:数字,函数执行后的返回值,
UID:自定义的序号,

将列表写到NFC标签

NDEF_Write()

参数:无, 此函数将列表的所有NDEF记录写入到标签中

回调函数返回结果:

FunctionID=53,
Result:数字,函数执行后的返回值,
UID:自定义的序号,

从NFC标签读NDEF记录

NDEF_Read()

参数:无

回调函数返回结果:

FunctionID=54,
Result:数字,函数执行后的返回值,如果>=0,则result值也作为返回的NDEF记录的顺序号
UID:自定义的序号,
CardNo:所操作的卡的卡号
strData:NDEF记录的字符串值
valData:NDEF类型URI

NDEF的javascript操作示例代码

一个NFC标签可以存储多个NDEF记录,NDEF记录数量与自身的数据大小和标签容量的大小有关。所以我们可以在一个NFC标签中存储多个NDEF记录。
增加一条NDEF记录到列表,注意此时数据只是在内存中,并没有写入到标签。

function AddToList()
{
	var uri;
	var Payload;
	
	uri = 1; //1表示网址,
	Payload ="youwokeji.com.cn";//写入的NDEF数据,由于uri=1表明是www.,所以此处网址不用增加www.

	rfidreader.Repeat=0;
	rfidreader.NDEF_AddRecord(uri,Payload);
}

清空所有的NDEF列表,注意是清空内存中的NDEF列表,此处也不操作NFC标签。

function ClearList()
{
	rfidreader.Repeat=0;
	rfidreader.NDEF_ClearAllRecords();	
}

写入,将内存中的NDEF数据列表全部写入到NFC标签中。

function WriteContent()
{
	rfidreader.Repeat=0;
	rfidreader.NDEF_Write();		
}

读取, 读取NFC标签中所有的NDEF记录

function ReadContent()
{
	rfidreader.Repeat=0;
	rfidreader.NDEF_Read();		
}

4个NDEF接口将全部用回调函数返回所有的数据:

rfidreader.onResult(function(resultdata)
{
	switch(resultdata.FunctionID)
    {

		case 51:
		
		if(resultdata.Result>0)
		{
            
            alert("增加到NDEF列表成功");			
		}
		break;
		case 52:
		if(resultdata.Result>0)
		{
			 alert("清空NDEF列表成功");	
		}
		break;
		case 53:
		if(resultdata.Result>0)
		{
			CardNo = resultdata.CardNo;	
			Alert("写入成功");
		}		
		break
		case 54:
		
		if(resultdata.Result>=0)
		{
			CardNo = resultdata.CardNo;
			uri = resultdata.ValData;
			ndefdata =resultdata.strData;
		break;
    }
}
);

参考资料: IC卡读卡器web开发指南.

标签:web,NFC,--,标签,URI,NDEF,resultdata,Type
来源: https://blog.csdn.net/Coodor/article/details/117106603

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有