Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Phonegap NFC不工作_Javascript_Android_Cordova_Phonegap Plugins_Nfc - Fatal编程技术网

Javascript Phonegap NFC不工作

Javascript Phonegap NFC不工作,javascript,android,cordova,phonegap-plugins,nfc,Javascript,Android,Cordova,Phonegap Plugins,Nfc,我按照项目页面上的说明为我的phonegap项目安装nfc插件。 在启动应用程序时,我确实看到等待NDEF标记的警报。然而,在将NFC卡轻敲到手机上时,我只听到失败的NFC声音(你可以在手机中听到)。我不确定这里出了什么问题 代码与上面第一个链接中的指示完全相同。为了简洁起见,我也将代码复制到这里: 我的index.js已经- onDeviceReady: function() { app.receivedEvent('deviceready'); // Read NDEF f

我按照项目页面上的说明为我的phonegap项目安装nfc插件。
在启动应用程序时,我确实看到
等待NDEF标记的警报。然而,在将NFC卡轻敲到手机上时,我只听到失败的NFC声音(你可以在手机中听到)。我不确定这里出了什么问题

代码与上面第一个链接中的指示完全相同。为了简洁起见,我也将代码复制到这里:
我的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卡可能要复杂得多,需要根据卡的种类遵循特定的结构和加密。有时需要将命令复制到卡上,然后按照复杂的协议等待响应

对于Mifare classic卡,您必须知道能够读取数据的密钥

由于这些原因,通用插件不允许读取任何类型的NFC卡

chariotsolutions插件允许完全访问NDEF标记,但只允许您获取其他卡的标记ID(在这种情况下,请改用nfc.addTagDiscoveredListener)

要执行更具体的操作,可以从这个插件开始制作自己的插件

检查你有什么样的卡可以使用


您也可以查看更多参考资料,或者。

您确定您的NFC卡实际上是NDEF标记,而不是任何其他类型的NFC卡吗?@QuickFix我会尝试查找,但NFC插件不应该支持任何类型的NFC标记吗?NDEF listener只支持NDEF标记。有一个nfc.addTagDiscoveredListener函数用于其他类型的标记,但它只允许检索标记ID。对于更复杂的操作,我必须从原来的插件中构建自己的插件。@QuickFix谢谢。我在日志:dispatch tag:tag:Tech[android.nfc.Tech.NfcA,android.nfc.Tech.MifareUltralight,android.nfc.Tech.ndefforformable]消息中注意到了这一点:null@QuickFix好的,我开始监听AddTagDiscoveryListener,得到了标签ID(这是我首先想要的)。谢谢。