2016-01-20 3 views
0

Разработка моего первого приложения для ионных приложений. Тестирование локально в браузере все работает так, как есть, но когда я тестирую свое устройство iOS (v9.2.1), $ location.path (...), похоже, не работает, а состояние страницы/состояния остается там, где оно есть.

поток процесса: 1. Пользователь вводит данные для входа в форме 2. Пользователя подтверждено с помощью моего внешнего API 3. Успешного ответа регистрирует устройство для нажимного 4. Пользователя направляется на главную страницу приложения

Я получаю журналы консоли на каждом шаге, поэтому я вижу, что все работает до этой точки. Я не получаю никаких ошибок в консоли (глядя в xcode и сафари).

кода (я удалил некоторые формы проверки для электронной почты, проверка пароля для упрощения):

.controller('LoginController', function($scope, $http, $state, $ionicPopup, $localstorage, $location, $ionicLoading, $ionicPush, $timeout) { 
$scope.data = {}; 

$http.post(api_path+'validateUser', JSON.stringify({key: 'xxx', email: $scope.data.email, password: $scope.data.password})).success(function(data) { 
    $ionicLoading.show(); 
    console.log(data); 
    if (data.result === 1) { 
     console.log('successfully logged in'); 
     if ($localstorage.get('storage_user_id') !== data.user_data.id) { 
      $localstorage.clear(); 
      console.log('clearing storage'); 
     } 
     $localstorage.set('storage_user_id', data.user_data.id); 
     $localstorage.setObject('user_data', data.user_data); 
     $ionicLoading.hide(); 

     if (!registeredPush) { 
      registeredPush = true; 
      $ionicPush.register(); 
      console.log('registering push'); 
     } 

     console.log(data.user_data.signature); 
     if (data.user_data.signature === '') { 
      console.log('Going to signatures page'); 
      $location.path('/save-signature'); 
     } else { 
      console.log('Going to buildings page'); 
      $location.path('/app/buildings'); 
     } 
    } 
}); 

Я попытался с помощью: $ state.go (...); $ Scope.apply и т.д.

ионной информации:

Your system information: 

Cordova CLI: 5.3.3 
Gulp version: CLI version 3.9.0 
Gulp local: Local version 3.9.0 
Ionic Version: 1.1.0 
Ionic CLI Version: 1.7.12 
Ionic App Lib Version: 0.6.5 
ios-deploy version: 1.8.4 
ios-sim version: 5.0.4 
OS: Mac OS X El Capitan 
Node Version: v0.12.2 
Xcode version: Xcode 7.2 Build version 7C68 

Спасибо.

+0

Я только что пробовал настройку: ** ионная конфигурация dev_push true **, и теперь перенаправление теперь работает на устройстве. Любая идея, почему ** ионная конфигурация set dev_push false ** остановила бы путь от работы? –

+0

Какой у вас выход? – BIU

+0

@BIU нормальный выход в сборке xcode тот же, если dev_push является истинным или ложным, кроме 1 дополнительной строки в конце, когда dev_push является ложным: ** Ионное ядро: плагины готовы ** –

ответ

0

Спасибо Hisham Abdel-Hafez, ваш комментарий поставил меня на правильный путь, чтобы решить это.

Как уже упоминалось, метод $ ionicPlatform.ready() вызывается до того, как плагины готовы. Я заметил это в выводе xcode, что я никогда не получал выход Ionic Core: плагины готовы, если я не удалю все внутри моей функции (настройки клавиатуры и состояния), а также удалил $ urlRouterProvider.otherwise по умолчанию стр.

Причина, по которой путь поиска не срабатывал, когда я пытался зарегистрировать push, состоял в том, что все происходило до того, как все плагины были на самом деле готовы, и я предполагаю, что это вызвало ошибку JS для остановки моего приложения.

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

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