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开发指南.