Кэш приложения в HTML5 не работает в приложении Android PhoneGap

Я пытаюсь использовать кэш приложения в HTML5 для приложения Android PhoneGap, но это не работает, оно не работает с 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);

Кроме того, этот код работает в iOS PhoneGap и Android Browser, а также по этой ссылке для поддерживаемых платформ. Приложение Cahce Поддерживаемые платформы

Итак, любое предложение было бы полезно.

3 ответа

Решение

Я считаю, что кеш приложения не включен по умолчанию в WebView. То, что вам нужно будет сделать, это в классе Java, который расширяет вызов DroidGap:

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

в вашем методе onCreate().

Вам также может понадобиться позвонить:

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

Обратите внимание, что каталог кэша должен существовать до вызова setAppCachePath().

Следить за публикациями...

http://developer.android.com/reference/android/webkit/WebSettings.html) http://developer.android.com/reference/android/webkit/WebSettings.html) http://developer.android.com/reference/android/webkit/WebSettings.html)

Для pathToCacheDir используйте:

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

Вы установили правильный тип пантомимы? Сначала я использую ".txt", например:

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

Он хорошо работает в iOS, Chrome, но не работает в Android!

Когда я устанавливаю правильный MIME-тип, он хорошо работает ~

В tomcat расширением по умолчанию было ".appcache", а типом mime по умолчанию было:

<mime-mapping>
    <extension>appcache</extension>
    <mime-type>text/cache-manifest</mime-type>
</mime-mapping>
Другие вопросы по тегам