2016-09-11 5 views
2

У меня есть проблема в функции PhoneGap-NFC plug-in Intel XDK.Looping в функции PhoneGap-NFC

function nova_pulseira(cli_nova_id) { 
    nfc.addTagDiscoveredListener(function (nfcEvent) { 
     var tag = nfcEvent.tag; 
     var = TagID nfc.bytesToHexString(tag.id); 

     if(TagID! == 0) { 
      nova_pulseira_input(cli_nova_id, TagID); 
     } else { 
      myApp.alert('error in reading the bracelet.' 'Notice'); 
     } 
    }); 
} 

nfc.addTagDiscoveredListener функция используется для считывания NFC TAG, когда происходит nfcEvent.
В первом чтении он работает нормально, но при выполнении второго чтения функция nfc.addTagDiscoveredListener применяется два раза, третье чтение - 3 раза и т. Д.
Единственный способ, которым я нашел «остановить» эту функцию, - location.reload();, но он возвращается на главную страницу приложения, и идеальным было бы активировать подстраницу.
Я бы, так или иначе, что nfc.addTagDiscoveredListener функция отключена после применения nova_pulseira_input (cli_nova_id, TagID); функция.
PS: Я использовал
-> Return false;
-> $ .each (Nfc, function() {this.reset();});
-> Intel.xdk.cache.clearAllCookies();
-> $ .ajaxSetup ({Cache: false});

Спасибо за помощь всех ...

+0

Я рекомендую вам сделать более простой обработчик событий, который генерирует console.log() и распечатает полученную информацию об объекте. Избегайте использования предупреждения для отладки проблемы. Оповещения могут препятствовать нормальной обработке и затруднять диагностику проблем. – xmnboy

ответ

0

Поместите функцию внутри вар и переопределить его позже:

var tagHandler = function() { 
 
     handlerOk(); 
 
\t }; 
 
    
 
function handlerOk() { 
 
    console.log("handlerOk()"); 
 
    tagHandler = function() { 
 
    \t console.log("disabled..") 
 
    }; 
 
} 
 

 
function tag() { 
 
    console.log("tag()"); 
 
    tagHandler(); 
 
} 
 

 
tag(); 
 
tag();

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

  • Нет связанных вопросов^_^