1

Android PhoneGap アプリケーションの HTML5 でアプリケーション キャッシュを使用しようとしていますが、これは機能しません。ApplicationCahce イベントでは感じられません。

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 ブラウザーで実行され、サポートされているプラ​​ットフォームについてはこのリンクが実行されます。 Application Cahce 対応プラットフォーム

したがって、どんな提案も役に立ちます。

4

3 に答える 3

6

WebView では、デフォルトでアプリケーション キャッシュが有効になっていないと思います。あなたがする必要があるのは、DroidGap 呼び出しを拡張する Java クラスです。

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#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 )

于 2012-10-03T14:27:54.940 に答える
1

正しい MIME タイプを設定しましたか? 最初は、次のように「.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>
于 2013-04-30T06:33:25.763 に答える
1

pathToCacheDir には、次を使用します。

String pathToCacheDir = this.getApplicationContext().getCacheDir().getAbsolutePath()
于 2013-01-10T08:56:00.140 に答える