2014-11-07 2 views
3

Я выполнил инструкции на странице проекта phonegap-nfc, чтобы установить плагин nfc для моего проекта phonegap.
При запуске приложения я вижу предупреждение Waiting for NDEF tag. Однако, нажимая NFC-карту на телефон, я просто слышу провал NFC-звука (вы можете услышать этот звук в this video). Я не уверен, что здесь неправильно.Phonegap 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)); 
     } 
    ); 
}, 
+0

Вы уверены, что ваша карта NFC на самом деле является тегом NDEF, а не какой-либо другой картой NFC? – QuickFix

+0

@QuickFix Я попытаюсь выяснить, но разве плагин NFC не поддерживает теги NFC? – Urban

+1

Слушатель NDEF поддерживает только теги NDEF. Для других типов тегов существует функция nfc.addTagDiscoveredListener, но она позволяет только получить идентификатор тега. Для более сложных операций мне пришлось создать собственный плагин из оригинального. – QuickFix

ответ

5

Плагин позволяет только запись/чтение ЦНК тегов, так как этот вид операций довольно легко.

Карты NFC могут быть намного сложнее и должны отслеживать конкретные структуры и шифрование в зависимости от вида карты. И иногда требуется отмена команд на карту и ожидание ответа по сложным протоколам.

В вашем случае классическая карта Mifare, вы должны знать ключ, чтобы читать данные.

По этим причинам общий плагин не позволяет читать какие-либо карты NFC.

chariotsolutions плагин обеспечивает полный доступ к тегам ЦНКА, но только позволяет получить идентификатор тега для других карт (в этом случае используйте nfc.addTagDiscoveredListener вместо)

Для выполнения более конкретных операций, может сделать свой собственный запуск плагина от этого.

Чтобы проверить, какие карты у вас есть вы можете использовать This app

Вы также можете проверить the Google page about NFC для получения дополнительной справки или this interesting doc from Motorola.

Смежные вопросы