2013-04-08 58 views
7

脫機工作我與PhoneGap的和Android,從服務器調用外部ressources(JS,CSS,HTML),而不是將其存儲在PhoneGap的資產文件夾中建立了一個簡單的Web應用程序。我更喜歡使用外部資源,因爲我的服務器可以提供負責國際化的HTML頁面。HTML5的Android的PhoneGap的Web應用程序無法與緩存清單

我的Android設備上此Web應用程序工作正常,當WIFI打開,但停止WIFI當它失敗。我的服務器提供的index.html文件包含有效的清單文件,其中包含正確的mimetype('text/cache-manifest'),列出了應用程序需要使用的每個文件。

我的Android Activity類應該有緩存啓用:

this.appView.getSettings().setDomStorageEnabled(true); 
    this.appView.getSettings().setAppCacheMaxSize(1024 * 1024 * 15); 

    String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); 
    this.appView.getSettings().setAppCachePath(appCachePath); 
    this.appView.getSettings().setAllowFileAccess(true); 
    this.appView.getSettings().setAppCacheEnabled(true); 

它可能值得mentionning我的應用程序使用Ajax調用與像/ AAA/BBB /調用來自服務器的網頁和我不網址知道是不是這個問題(我米不是要求物理頁一樣,直接的index.html)......然而,在桌面瀏覽器這個Web應用程序的工作以及(谷歌瀏覽器),在離線狀態下...

任何想法在我的Phonegap應用程序上啓用此HTML5緩存功能還能做些什麼?

非常感謝

回答

6

玩弄了一會兒,我得到它的工作之後。下面是當這種類型的緩存問題的stucked你應該確認幾點:

  • 採取關心與GET方法傳遞的URL參數...我的應用程序的頁面和這些參數之間進行導航時,我傳遞參數做了我的網址與清單文件中的網址不同,從而導致緩存失敗。
  • 當我的手機上測試離線模式,我只是關閉WIFI認爲這是足以引發我的應用程序的緩存版本,但它不是......當我在測試我的應用程序在本地網絡IP發佈(如192.168.2.11),似乎我的應用試圖通過仍然處於開啓狀態的3G網絡到達該IP ...因此,在離線測試時使用飛行模式。
  • 不知道這是否有必要,因爲我在其他線程上讀取它,但我將我的清單文件重命名爲cache.manifest。

問候

1

我開發一個類似的系統。我做的是我創建了Phonegap網頁並將它們存儲在我的WAMP服務器的www文件夾中。然後,我做的是我基本上super.LoadURL(「insert_ip_address_here/insert_name_of_folder_where_webpage_is_located」)在onCreate方法,這完全加載的應用程序的PhoneGap(是你需要的是在Android應用程序本身的代碼僅僅只有線)。但是,您仍然必須確保config.xml,manifest和phonegap所需的所有配置都已正確完成(有關此說明的信息,請參見http://www.google.ca/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CEAQFjAA&url=http%3A%2F%2Fwww.adobe.com%2Fdevnet%2Fhtml5%2Farticles%2Fgetting-started-with-phonegap-in-eclipse-for-android.html&ei=XfBuUcmKNu684AP3vYDQBw&usg=AFQjCNG16oUTDylMqz20YiiMZTlDxrfbPg&bvm=bv.45368065,d.dmg)。

讓我知道如果這個你選擇的路徑追求。我可以提供額外的支持,比如使用多播等方式使本地系統的IP地址(在super.loadurl(...)行中爲動態)。

+0

是的,這基本上是我在做什麼,我打電話給我的遠程index.html與super.LoadURL(我的http url)在onCreate方法。如果你檢查我的問題,我還定義了各種設置,以使用相同的方法啓用緩存...... – 2013-04-18 15:13:04

+0

有趣的是,緩存是否會讓應用運行得更快? (我想在我自己的代碼中實現它)。 – aagarwal 2013-04-20 04:18:27

相關問題