我有基於Cordova和Ionic的移動應用程序。在應用程序啓動後加載的默認頁面需要使用SQLLite插件。如何在Ionic應用程序中以正確的方式進行Deviceready?
https://github.com/brodysoft/Cordova-SQLitePlugin
問題是,視圖包含
ng-init="setData()"
這是調用在其中與SQL精簡版插件工作的控制器方法。並且由於該方法在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是NG-初始化後,解僱)。
之後,我發現這篇文章:
http://java.dzone.com/articles/ionic-and-cordovas-deviceready
,但我不知道如何把「閃屏」之前的應用程序已經準備好,以及如何設置超時。
有人想法我該如何解決這個問題?
很多感謝您的任何建議或幫助。
沒有人知道如何解決它? – redrom 2014-12-04 19:33:01