Question

I'm trying to use application cache in HTML5 for Android PhoneGap Application, but this doesn't work, it doesn't feel with ApplicationCahce Events.

function logEvent(event) {
        console.log(event.type);
    }

    window.applicationCache.addEventListener('checking', logEvent, false);
    window.applicationCache.addEventListener('noupdate', logEvent, false);
    window.applicationCache.addEventListener('downloading', logEvent, false);
    window.applicationCache.addEventListener('progress', logEvent, false);
    window.applicationCache.addEventListener('cached', logEvent, false);
    window.applicationCache.addEventListener('updateready', logEvent, false);
    window.applicationCache.addEventListener('obsolete', logEvent, false);
    window.applicationCache.addEventListener('error', logEvent, false);

Also, this code run in iOS PhoneGap and Android Browser and this link for supported platforms. Application Cahce Supported platforms

So, any suggestion it would be helpful.

Was it helpful?

Solution

I believe the application cache is not enabled by default in the WebView. What you will need to do is in the Java class that extends DroidGap call:

this.appView.getSettings().setAppCacheEnabled(true);

in your onCreate() method.

You may also need to call:

this.appView.getSettings().setAppCacheMaxSize(sizeInBytes);
this.appView.getSettings().setAppCachePath(pathToCacheDir);

Please note the cache directory must exist before you call setAppCachePath().

Read up on...

http://developer.android.com/reference/android/webkit/WebSettings.html#setAppCacheEnabled(boolean) http://developer.android.com/reference/android/webkit/WebSettings.html#setAppCacheMaxSize(long) http://developer.android.com/reference/android/webkit/WebSettings.html#setAppCachePath(java.lang.String)

OTHER TIPS

For pathToCacheDir, use:

String pathToCacheDir = this.getApplicationContext().getCacheDir().getAbsolutePath()

did you set the correct mime-type? At first I use the '.txt' like thie:

<!DOCTYPE html>
<html manifest="cache.txt">
<head>

It works well in iOS, Chrome but doesn't work in Android!

When I set the correct mime-type,it works well~

In tomcat,the default extension was '.appcache',and the default mime-type was:

<mime-mapping>
    <extension>appcache</extension>
    <mime-type>text/cache-manifest</mime-type>
</mime-mapping>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top