我有一個iPhone PhoneGap應用程序。有一個HTML文件位於遠程服務器中,另一個HTML文件位於項目包(本地)中。PhoneGap 2.1:升級後(2.0至2.1)onDeviceReady沒有被遠程調用
升級到PhoneGap 2.1之後,我的onDeviceReady()(正在監聽「deviceready」)方法在服務器端不再被調用。我在本地有一個HTML文件,在本地調用onDeviceReady方法時沒有任何問題。但在重定向到網頁應用程序後,onDeviceReady()方法不再被調用。使用PhoneGap 2.0我沒有這種問題。有人有一個想法,爲什麼它可能是這樣嗎?
我已經做了一個完整的新(模板)PG項目,使用控制檯,並將WWW文件夾添加到我的服務器。在模板項目中,我對模板phonegap項目的www遠程文件夾中的index.html進行了重定向。我意識到,總會發生同樣的問題:onDeviceLoad方法沒有被調用。這就是phonegap的模板項目。在本地它可以正常工作,但不能在服務器上運行。我允許的ExternalHosts已被設置爲'*'(允許所有主機)。
我發現,其他開發人員有同樣的問題:https://issues.apache.org/jira/browse/CB-1529
難道有人知道如何解決這個問題?提前致謝。
當遠程調用「device.name」時,調用「device.name」時會返回「null」,但在本地調用時不會返回null。它看起來像PhoneGap沒有被遠程初始化,但只有本地文件。 測試方案:使用safari開發者工具(或WEINRE)調用任意JavaScript代碼(JavaScript注入)並調用「alert(device.name);」。出現警報。如果index.html是在本地讀取的,則警報將顯示設備名稱,但如果index.html位於遠程服務器上,則警報將顯示字符串「null」 – jcdmb
您是否更新了Serverside上的cordova JavaScript文件並執行了您的操作html文件指導他們正確(路徑是否正確?) – Maffo
@Maffo:當然,使用safari開發者工具,我已經檢查了所有的路徑。 – jcdmb