2016-12-09 2 views
0

Я пытаюсь внедрить TouchId в свое приложение, но у меня есть некоторые проблемы.Использование TouchId для получения нулевого Ti. объекты

Вот функция, я использую, прямо из документации:

function SignInTouchID(){ 
TiTouchId.authenticate({ 
    reason: 'We need your fingerprint to sign in.', 
    callback: function(e) { 
     if (!e.success) { 
      //alert('Message: ' + e.error + '\nCode: ' + e.code); 
      switch(e.code) { 
       case TiTouchId.ERROR_AUTHENTICATION_FAILED: Ti.API.info('Error code is TiTouchId.ERROR_AUTHENTICATION_FAILED'); break; 
       case TiTouchId.ERROR_USER_CANCEL: Ti.API.info('Error code is TiTouchId.ERROR_USER_CANCEL'); break; 
       case TiTouchId.ERROR_USER_FALLBACK: Ti.API.info('Error code is TiTouchId.ERROR_USER_FALLBACK'); break; 
       case TiTouchId.ERROR_SYSTEM_CANCEL: Ti.API.info('Error code is TiTouchId.ERROR_SYSTEM_CANCEL'); break; 
       case TiTouchId.ERROR_PASSCODE_NOT_SET: Ti.API.info('Error code is TiTouchId.ERROR_PASSCODE_NOT_SET'); break; 
       case TiTouchId.ERROR_TOUCH_ID_NOT_AVAILABLE: Ti.API.info('Error code is TiTouchId.ERROR_TOUCH_ID_NOT_AVAILABLE'); break; 
       case TiTouchId.ERROR_TOUCH_ID_NOT_ENROLLED: Ti.API.info('Error code is TiTouchId.ERROR_TOUCH_ID_NOT_ENROLLED'); break; 
       default: Ti.API.info('Error code is unknown'); break; 
      } 
     } else {  
      //alert(Ti.Platform.osname); 
      //SignIn(true); 
      var xhr = Ti.Network.createHTTPClient(); 
      xhr.timeout = 30000; 
     } 
    } 
}); 

}

Пользователь нажимает на кнопку входа, который вызывает SignInTouchID. Я получаю отпечатки пальцев приглашения и что работает, но как только он запускает обратный вызов и выполнить код XHR (вставлено для краткости), я получаю следующее сообщение об ошибке:

enter image description here

Его почти как она теряет контекст Ti. Если я удалю код TouchId, у меня нет ни одной из этих проблем. Не уверен, что я делаю неправильно, любая помощь будет оценена!

TiSDK: 5.5.1 GA iPhone 6 v10.1.1 Appcelerator студия, встроенная: 4.8.0.201610171310 (с) Copyright 2012-2016 по Appcelerator, Inc. Все права защищены.

Сложение: Дженкинс-Appcelerator-RCP-релиз-595 (начало/выпуск) Дата: 17 октября 2016, 13:11:46

ответ

0

Перепишите код для этого:

var xhr = Ti.Network.createHTTPClient({ 
    timeout: 30000 
}); 
+0

Это может исправить проблему для этой конкретной строки кода, но проблема больше. По какой-то причине объект xhr имеет значение null при использовании TouchId, но не уверен, почему это так. –

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