我按照 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));
}
);
},
最佳答案
该插件只允许写入/读取 NDEF 标签,因为这种操作非常简单。
NFC 卡可能要复杂得多,并且需要根据卡的种类遵循特定的结构和加密。有时需要向卡发送命令并等待遵循复杂协议(protocol)的响应。
对于您的 Mifare 经典卡,您必须知道一个 key 才能读取数据。
由于这些原因,通用插件不允许读取任何类型的 NFC 卡。
chariotsolutions 插件允许完全访问 NDEF 标签,但只允许您获取其他卡的标签 ID(在这种情况下,请改用 nfc.addTagDiscoveredListener)
要执行更具体的操作,可以从这个开始制作自己的插件。
要查看您拥有的卡类型,您可以使用 This app
您还可以检查the Google page about NFC更多引用,或 this interesting doc from Motorola .
关于javascript - Phonegap NFC 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26806344/