2014-03-25 210 views
7

我正在開發使用科爾多瓦(3.4)的移動應用程序。我的核心應用程序文件嵌入到我的應用程序檔案(.apk或.ipa)中,並且必須從我的服務器檢索一些文件(js/html/css)。 因此,如果我希望我的應用程序可以脫機使用,則需要對這些文件使用appcacheAppcache在科爾多瓦應用程序

我appcache.manifest的樣本:

CACHE MANIFEST 
# version 7 


NETWORK: 
* 
http://* 
https://* 

CACHE: 
# Message module 
http://my.server.ip/module/routes.json 
http://my.server.ip/module/css/style.css 
http://my.server.ip/module/js/controller.js 
http://my.server.ip/module/js/service.js 
... 

我的index.html(嵌入到我的應用程序):

<!DOCTYPE html> 
<html lang="en" xmlns:ng="http://angularjs.org" id="ng-app" ng-app="app" 
          manifest="http://my.server.ip/tmp_appcache.manifest"> 
... 
<body> 
<script> 
    document.addEventListener("deviceready", function(e) { 
     var appCache = window.applicationCache; 

     alert('device ready'); 

     console.log('appCache', appCache); 
     // Fired after the first cache of the manifest. 
     appCache.addEventListener('cached', function(event) { 
      console.log(event); 
      alert('Appcache OK'); 
     }, false); 

     appCache.addEventListener('UpdateReady', function(event) { 
      console.log(event); 
      alert('Appcache Reloaded'); 
     }, false); 


     appCache.addEventListener('error', function(event) { 
      console.log(event); 
      alert('Appcache ERROR'); 
     }, false); 

     appCache.addEventListener('checking', function(event) { 
      console.log(event); 
      alert('Appcache CHECKING'); 
     }, false); 

     appCache.addEventListener('downloading', function(event) { 
      console.log(event); 
      alert('Appcache DOWNLOADING'); 
     }, false); 

     appCache.addEventListener('noupdate', function(event) { 
      console.log(event); 
      alert('Appcache NOUPDATE'); 
     }, false); 

     appCache.addEventListener('obsolete', function(event) { 
      console.log(event); 
      alert('Appcache OBSOLETE'); 
     }, false); 
    }, false); 
</body> 
</html> 

我的問題是,當我啓動我的PP(在Android AND iOS),我沒有看到任何警報(「準備就緒」除外),並且沒有文件被緩存。

如果我打開我的設備瀏覽器Web應用程序的URL我居然看到我的警覺。

是否有另一種配置的PhoneGap怎樣做才能讓應用程序緩存?

我見過一些關於enabling appcache in Android的文章,但它似乎是針對舊版本的cordova,而且它不適用於我,如果它是我的問題的根源,appcache應該可以在iOS上使用。

任何想法將是有益的。由於

+0

一直在尋找一個答案了幾個小時,還沒有同樣的問題,發現使用HTML5緩存清單至今清晰的(和工作)的方式...... – Zwik

+1

我創建了一個[問題在科爾多瓦JIRA](https://issues.apache.org/jira/browse/CB-6704)。 – Tako

+0

另一個[JIRA](https://issues.apache.org/jira/browse/CB-6713)關於這個問題 – Tako

回答

1

應用程序緩存不科爾多瓦3.4和高達4.0的支持,並支持沒有計劃在不久的將來的標準(如17 /月/ 2015年)。

0

基本上你不要求應用程序緩存。檢查下面的鏈接以獲得更多清晰度。

https://www.raymondcamden.com/2015/02/26/reminder-you-dont-need-appcache-for-phonegapcordova

+0

您不明白我的問題,正如我所說**我的核心應用程序文件已嵌入到我的應用程序存檔(.apk或.ipa)中,並且必須從中檢索某些文件(js/html/css)我的服務器。** 所以這篇文章是不相關的 – Tako

+0

好吧,我明白了。我不確定您的確切用例,但作爲最佳實踐,請嘗試將這些文件保留在您的應用程序包中,以防您希望脫機使用這些文件。 –

相關問題