2015-12-23 2 views
1

У меня проблема с кнопкой «Назад» моего приложения.Проблемы с ионной обратной кнопкой

Первоначально я думал, что проблема была в Кордове, но я определил, что проблема на самом деле в ионике.

Я нашел этот код во время исследования для решения:

// Disable BACK button on home 
    $ionicPlatform.registerBackButtonAction(function (event) { 
    if($state.current.name=="app.home"){ 
     navigator.app.exitApp(); 
    } 
    else { 
     navigator.app.backHistory(); 
    } 
    }, 100); 

Однако он дает следующее сообщение об ошибке:

Uncaught ReferenceError: $ionicPlatform is not defined

Я помещаю этот код в новом документе под названием functionAngular.js и I добавьте его в конец тега body. Как я должен сообщить эту функцию?

Моя проблема заключается в том, что:

I want my back button to send the user further back in the navigation stack instead of closing the application instantly.

Я благодарен за эту помощь.

+0

Пожалуйста, напишите functionAugular.js – Selva

+0

В файле указанная выше функция. –

+0

Проверьте, не включили ли вы $ ionicPlatform в качестве параметра этой функции – Selva

ответ

1
angular.module('EGLISE') 

.run(function($ionicPlatform,$state,$ionicHistory){ 

$ionicPlatform.registerBackButtonAction(function (event) { 
    if($state.current.name=="app.home"){ 
     navigator.app.exitApp(); 
    } 
    else { 
     $ionicHistory.backHistory(); 
    } 
    }, 100); 

}); 

Измените свою функциюAngular.js на вышеуказанный код.

+0

Я сделаю сборку и просмотрю результат. Только это будет работать? –

+0

Он по-прежнему не работает, даже не захватывает событие. –

+0

Просмотрите свой ответ, мне кажется, что ошибки. –

1

Я рекомендую вам сначала добавить $ ionicPlatform в контроллер, а в первом загруженном контроллере проверить каждое состояние (см. Ниже), что кнопка возврата должна иметь разные действия.

$ionicPlatform.registerBackButtonAction(function() { 
     if ($state.current.name == " login (example) ") { 
      ionic.Platform.exitApp(); 
     } 
     if ($state.current.name == " main menu buttons (example) ") {    
      // Sample message "want to exit the application?" (YES/NO)       
      if (YES) { 
       $ionicViewSwitcher.nextDirection('back'); 
       $state.go(' ????'); 
      }; 
     }; 
     if ($state.current.name == " order (example) ") {    
      // Sample message "want to exit the order?" (YES/NO)       
      if (YES) { 
       $ionicViewSwitcher.nextDirection('back'); 
       $state.go(' ????'); 
      }; 
     };       
    }, 100); 
+0

Я наполовину непрофессионал смотрит на все это, и у меня большие трудности, другой код, который он не взял или даже событие, дал бы мне какую-то подсказку, где разместить и как поместить? Нам нужно нажать кнопку самой ячейки, она не выйдет из приложения. –

+0

РеестрBackButtonAction не должен тестироваться по телефону. В эмуляторе действительно работает. Вы тестируете телефон? – AdsHan

+0

Да, я тестировал телефон и эмулятор, и он не слушал это событие и вышел из приложения. –

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