我按照phonegap-nfc项目页面上的说明为我的phonegap项目安装了nfc插件。
在启动应用程序时,我确实看到了Waiting for NDEF tag
警报。但是,在将NFC卡轻触手机时,我只能听到失败的NFC声音(您可以在this video中听到声音)。我确定这里有什么问题。
代码与上面第一个链接的指示完全相同。为简洁起见,我也会在此处复制代码:
我的index.js有 -
onDeviceReady: function() {
app.receivedEvent('deviceready');
// Read NDEF formatted NFC Tags
nfc.addNdefListener (
function (nfcEvent) {
var tag = nfcEvent.tag,
ndefMessage = tag.ndefMessage;
// dump the raw json of the message
// note: real code will need to decode
// the payload from each record
alert(JSON.stringify(ndefMessage));
// assuming the first record in the message has
// a payload that can be converted to a string.
alert(nfc.bytesToString(ndefMessage[0].payload).substring(3));
},
function () { // success callback
alert("Waiting for NDEF tag");
},
function (error) { // error callback
alert("Error adding NDEF listener " + JSON.stringify(error));
}
);
},
答案 0 :(得分:5)
该插件只允许写入/读取NDEF标记,因为这种操作非常简单。
NFC卡可能要复杂得多,需要根据卡的种类来遵循特定的结构和加密。有时需要向卡发送命令并等待复杂协议的响应。
在您的情况下使用Mifare经典卡,您必须知道能够读取数据的密钥。
由于这些原因,通用插件无法读取任何类型的NFC卡。
chariotsolutions插件允许完全访问NDEF标签,但只允许您获取其他卡的标签ID(在这种情况下使用nfc.addTagDiscoveredListener)
要执行更具体的操作,可以从这个开始创建自己的插件。
要查看您拥有哪种卡,可以使用This app
您还可以查看the Google page about NFC以获取更多参考,或this interesting doc from Motorola。