$ionic.Platform.ready не срабатывает в Android

В настоящее время у меня есть прослушиватель событий $ionicPlatform в моем app.js. Я знаю, что он работает в тестовой среде в браузере ПК, но когда я создаю приложение и запускаю его на своем устройстве Android, ionicPlatform.ready никогда не запускается/не срабатывает. Любые идеи?

Вот несколько опубликованных тем/вопросов с некоторыми решениями, которые не сработали для меня.

https://github.com/driftyco/ionic/issues/1751

https://stackoverflow.com/questions/32421291/code-inside-ionic-platform-ready-not-getting-fired-up

app.js

var app = angular.module('who', ['ionic', 'ngCordova'])
.run(function($ionicPlatform, $rootScope, $cordovaDevice) {
  $ionicPlatform.ready(function() {
    if(window.cordova && window.cordova.plugins.Keyboard) {
      // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
      // for form inputs)
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);

      // Don't remove this line unless you know what you are doing. It stops the viewport
      // from snapping when text inputs are focused. Ionic handles this internally for
      // a much nicer keyboard experience.
      cordova.plugins.Keyboard.disableScroll(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }
    var push = new Ionic.Push({
      "debug": true
    });
    push.register(function(token) {
      console.log("Device token:",token.token);
    });
    console.log('reached end of ionic platform ready');
  });
})

ОБНОВЛЕНИЕ 14.12.2015, 5:24. У меня есть представление/активность, которое загружается первым и отображает результаты слушателя $ionic.platform.ready. При загрузке приложения ничего не отображается. Что интересно, после перехода к другому представлению/действию, а затем возврата к первому представлению/действию результат затем загружается/отрисовывается. Любые идеи?

ОБНОВЛЕНИЕ 14.12.2015, 5:30 - Я попробовал ionic.Platform.ready, я попробовал document.addEventlistener 'deviceready'. Ни один из них не работает, и $ionicPlatform.ready доставляет мне меньше всего проблем, поэтому я выбрал его по умолчанию.


person nkl    schedule 14.12.2015    source источник
comment
У меня есть представление/активность, которое загружается первым, оно отображает результаты слушателя $ionic.platform.ready. При загрузке приложения ничего не отображается. Что интересно, после перехода к другому представлению/действию, а затем возврата к первому представлению/действию результат затем загружается/отрисовывается. Любые идеи?   -  person nkl    schedule 14.12.2015
comment
Вы пробовали ionic.Platform.ready(funtion(){}) вместо этого?   -  person Muhsin Keloth    schedule 14.12.2015
comment
@Muhsin Да, я пробовал ionic.Platform.ready, я пробовал document.addEventlistener 'deviceready'. Ни один из них не работает, и $ionicPlatform.ready доставляет мне меньше всего проблем, поэтому я выбрал его по умолчанию.   -  person nkl    schedule 14.12.2015


Ответы (1)


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

Данные, полученные в $ionicPlatform.ready, не будут отображаться в первом загруженном действии. Обычно мне приходилось переходить как минимум к еще одному действию, а затем возвращаться, чтобы увидеть результаты. Теперь я знаю, что у ionicFramework есть своя собственная всплывающая активность по умолчанию, которую я не хочу переопределять для этой цели (пока), поэтому я добавил еще одно представление/состояние/активность, которая просто служит буфером и сразу переходит к активности результатов.

  1. приложение загружено ‹- здесь должна быть запущена ионная платформа, но это не
  2. активность ионного всплеска
  3. буферная активность
  4. результат деятельности ‹- готовая ионная платформа, наконец, запускается, странно.

Возможно, это просто мое непонимание синхронизации данных Ionic, но это грязное исправление, похоже, решило эту проблему.

person nkl    schedule 14.12.2015