我遇到了'deviceready'從AngularJS內部註冊的問題。我確信這是以前的工作,所以我不確定發生了什麼變化。Cordova的'deviceready'事件沒有從angular.run塊內部觸發
如果我稱之爲 'deviceready' 從全球的addEventListener,它的工作原理,就像這樣:
document.addEventListener('deviceready', function(){
localStorage.deviceReadyGlobal = true;
});
deviceReadyGlobal = TRUE時。但是,如果我嘗試從Angular內部添加此內容,它將不會觸發,如下所示:
app.run(function(){
document.addEventListener('deviceready', function(){
localStorage.deviceReadyAngular = true;
});
});
deviceReadyAngular從不設置。現在,據我所知,PhoneGap可能已經啓動了'deviceready',而Angular是bootstrapping,但根據PhoneGap文檔,這應該不重要。
deviceready事件與其他行爲有所不同。在deviceready事件觸發後註冊的任何 事件處理函數立即調用其 回調函數。
'deviceready'的行爲發生了變化嗎?
我目前使用Cordova 3.3.0和Angular 1.2.5。
不知道爲什麼它不工作,但我一直只是在自舉處理deviceReady角。 –
謝謝。我知道很多PhoneGap/Angular人推薦這種方法。我試圖避免它,因爲我們的應用程序引導程序中沒有任何屏蔽PhoneGap依賴項。我們也沒有/總是/在PhoneGap中運行應用程序。 –
我敢打賭,你錯過了'deviceready'事件,因爲你的處理程序太晚了。您是否嘗試過在角度啓動之前使用全局函數來捕獲它,然後僅在您尚未看到事件時纔在「運行」塊中添加事件? –