2013-04-30 1 views
0

Android의 PhoneGap 애플리케이션이 캐시 된 파일을 사용하지 않았습니다. 그러나 HTML5 응용 프로그램 캐시가 활성화되어 있고 이벤트가 올바르게 트리거됩니다. Android의 PhoneGap 앱이 HTML5 애플리케이션 캐시를 사용하지 않았습니다.

나는 웹 사이트는 HTML5 응용 프로그램 캐시를 사용했다 :

인덱스 파일 :

<!DOCTYPE html> 
<html manifest="cache.appcache"> 
<head> 
    <link rel="stylesheet" type="text/css" href="site.css"> 
</head> 
<body> 
    <div> 
     Hello World 
    </div> 
</body> 
</html> 

CSS 파일 :

div{ 
    background-color: red; 
} 

앱 캐시 파일 :

CACHE MANIFEST 
#v1 

CACHE: 
site.css 

그것은 잘 작동 Chrome, iOS 웹 Broswer, iOS의 PhoneGap, Android 2.1 웹 브라우저. 하지만 Android의 PhoneGap에서는 작동하지 않습니다!

나는 명령 줄을 사용하여 Android PhoneGap 응용 프로그램을 만들고 내 웹 사이트의 시작 URL 만 수정합니다. 응용 프로그램이 제대로 응용 프로그램 캐시 이벤트를 트리거합니다

// Fired after the first cache of the manifest. 
appCache.addEventListener('cached', handleCacheEvent, false); 

// Checking for an update. Always the first event fired in the sequence. 
appCache.addEventListener('checking', handleCacheEvent, false); 

// An update was found. The browser is fetching resources. 
appCache.addEventListener('downloading', handleCacheEvent, false); 

나는 cache.appcache 파일을 수정하지 않았다! 그리고이 이벤트는 캐시가 수정되지 않았 음을 보여줍니다. 그러나 응용 프로그램 캐시를 사용하지 않습니다. 무엇이 문제입니까?

답변

0

2.5에 대한 폰갭 릴리스 노트는 우리에게 그것은 응용 프로그램 캐시를 지원하고 문제를 해결했습니다. (이전 버전에서 응용 프로그램 캐시를 몇 가지 코드를 작성하고 활성화해야합니다)

내가 폰갭 2.6 사용 , 응용 프로그램 캐시가 작동하지 않았지만 사용할 수 있도록 코드를 작성했을 때 제대로 작동합니다. 이 같은

코드 :

public class HelloWorld extends DroidGap { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Set by <content src="index.html" /> in config.xml 

     super.init(); 
     android.webkit.WebSettings settings = super.appView.getSettings(); 
     String appCachePath = this.getCacheDir().getAbsolutePath(); 
     settings.setAppCachePath(appCachePath); 
     settings.setAllowFileAccess(true); 
     settings.setAppCacheEnabled(true); 

     // super.loadUrl(Config.getStartUrl()); 
     super.loadUrl("http://192.168.0.104:8080/cache/index.html"); 
    } 
} 
관련 문제