Wie Deviceready-in der rechten Weise in Ionischen Anwendung?

Ich habe Cordova und Ionic-basierten mobilen Anwendung. Auf der Standard-Seite, die geladen wird nach dem start der Anwendung arbeiten müssen, um mit SQLLite-plugin.

https://github.com/brodysoft/Cordova-SQLitePlugin

Problem ist, dass die view enthält

ng-init="setData()"

Welche den Aufruf der controller-Methode, wo gearbeitet wird mit SQL Lite plugin. Und weil der die Methode aufgerufen wird, bevor das deviceready-Ereignis ist nicht initialisiert (plugin initialisiert nur nach deviceready-Ereignis).

Also versuchte ich diese Problemumgehung:

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    //Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    //for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      db = window.sqlitePlugin.openDatabase({name:"callplanner"});
    }

Aber das funktioniert nicht für mich.

Also versuchte ich die zweite Lösung:

.factory('cordova', function () {
  return {
      test: function(){
          document.addEventListener("deviceready", this.ready, false);
      },
      ready: function(){
            alert("Ready");
            db = window.sqlitePlugin.openDatabase({name:"callplanner"});
      }

  }
})

- und controller-init habe ich versucht:

cordova.test();

Aber das funktioniert nicht (devicereadfy ausgelöst wird, nachdem ng-init).

Danach fand ich diesen Artikel:

http://java.dzone.com/articles/ionic-and-cordovas-deviceready

Aber ich verstehe nicht, wie man "splash-screen", bevor die app fertig ist und wie timeout.

Jemand Idee wie kann ich dieses problem lösen?

Vielen Dank für jeden Rat oder Hilfe.

  • Niemand weiß, wie es zu lösen?
InformationsquelleAutor redrom | 2014-12-04
Schreibe einen Kommentar