У меня есть мобильное приложение на основе Cordova и Ionic. На странице по умолчанию, загруженной после запуска приложения, необходимо работать с плагином SQLLite.Как Deviceready в правильном направлении в ионном приложении?
https://github.com/brodysoft/Cordova-SQLitePlugin
Проблема заключается в том, что представление содержит
ng-init="setData()"
Который звонит метод контроллера, где работал с SQL Lite плагин. И из-за метода вызывается до того, как событие deviceready не инициализируется (плагин может быть инициализирован только после события deviceready).
Так что я попробовал этот обходной путь:
.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"});
}
Но это не работает для меня.
Так я попробовал второе решение:
.factory('cordova', function() {
return {
test: function(){
document.addEventListener("deviceready", this.ready, false);
},
ready: function(){
alert("Ready");
db = window.sqlitePlugin.openDatabase({name:"callplanner"});
}
}
})
и контроллер инициализации я пробовал:
cordova.test();
Но это не работает в (devicereadfy обжигают после нг-инициализации).
После того, что я нашел эту статью:
http://java.dzone.com/articles/ionic-and-cordovas-deviceready
Но я не понимаю, как поставить «заставку экрана» перед приложение готово и как установить тайм-аут.
У кого-нибудь есть идея, как я могу решить эту проблему?
Большое спасибо за любые советы или помощь.
Никто не знает, как его решить? – redrom