javascript - Phonegap NFC 不工作

标签 javascript android cordova phonegap-plugins nfc

我按照 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/

相关文章:

cordova - AppxManifest (Cordova) 中 Identity 元素的 Publisher 属性

javascript - 如何获取promise的 "initiator"调试信息?

java - 使用 setFilterQueryProvider 从数据库过滤数据?

android - 文本颜色与微调器不匹配

java - 暴力匹配是否适用于 FREAK 描述符?

javascript - intelXDK 在简单的 Javascript 代码上产生错误

使用 Phonegap 进行 Android 应用内购买

javascript - 查找DIV id内容并通过AJAX加载

javascript - Div 内容不会更新 - 简单的 Javascript

javascript - 响应页面加载弹出窗口