【发布时间】:2014-12-04 17:47:01
【问题描述】:
我有基于 Cordova 和 Ionic 的移动应用程序。在应用程序启动后加载的默认页面上,需要使用 SQLLite 插件。
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();
但这不起作用(在 ng-init 之后触发 devicereadfy)。
后来我发现了这篇文章:
http://java.dzone.com/articles/ionic-and-cordovas-deviceready
但我不明白如何在应用程序准备好之前放置“启动画面”以及如何设置超时。
有人知道我该如何解决这个问题吗?
非常感谢您的任何建议或帮助。
【问题讨论】:
-
没人知道怎么解决吗?
标签: javascript android angularjs cordova ionic-framework