2012-07-12 5 views
6

パフォーマンスを承認するためにアプリキャッシュを使用しようとしています。アンドロイドデバイスでアプリキャッシュが機能しません(Chromeブラウザでうまく機能します)

私はさまざまなサイトで案内されています。 (例:http://xguru.net/621 ...)

make mime-typeをtext/cache-manifestとして設定します。

問題は、それがGoogle Chromeブラウザでも動作しますが、私のAndroid携帯電話では動作しません...

です。

私はICSとジンジャーブレッドでテストしました。

これはマニフェストファイルです。

CACHE MANIFEST 
# manifest version v0.1 

CACHE: 
./programs.png 
./video.png 

NETWORK: 
* 

このように私はwebviewを設定しました。

getSettings().setAppCacheEnabled(true); 
getSettings().setDomStorageEnabled(true); 
getSettings().setPluginsEnabled(true); 
getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); 

(私はLOAD_NORMAL、NO_CACHEにCACHEMODEを変更しましたが、それは違うではありません。)

キャッシュ状態を確認するには、私はこのサイトを使用しています。 http://jonathanstark.com/blog/2009/09/27/debugging-html-5-offline-application-cache/

var cacheStatusValues = []; 
cacheStatusValues[0] = 'uncached'; 
cacheStatusValues[1] = 'idle'; 
cacheStatusValues[2] = 'checking'; 
cacheStatusValues[3] = 'downloading'; 
cacheStatusValues[4] = 'updateready'; 
cacheStatusValues[5] = 'obsolete'; 

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

function logEvent(e) { 
    var online, status, type, message; 
    online = (navigator.onLine) ? 'yes' : 'no'; 
    status = cacheStatusValues[cache.status]; 
    type = e.type; 
    message = 'online: ' + online; 
    message+= ', event: ' + type; 
    message+= ', status: ' + status; 
    if (type == 'error' && navigator.onLine) { 
     message+= ' (prolly a syntax error in manifest)'; 
    } 
    console.log(message); 
} 

window.applicationCache.addEventListener(
    'updateready', 
    function(){ 
     window.applicationCache.swapCache(); 
     console.log('swap cache has been called'); 
    }, 
    false 
); 

最後に、これは私が私のアンドロイド携帯電話上で参照ログです。

[cache Resource] app cache support! 
[cache Resource] DOWNLOADING 
[cache Resource] event online: yes, event: checking, status: uncached 
[cache Resource] event online: yes, event: downloading, status: uncached 
[cache Resource] event online: yes, event: progress, status: uncached 
[cache Resource] event online: yes, event: progress, status: uncached 
[cache Resource] event online: yes, event: error, status: uncached (prolly a syntax error in manifest) 

画像はダウンロードされますが、最終行でエラーが発生します。 それは常にキャッシュされていません。

問題はwebviewの設定やアンドロイドアプリケーションにあると思います。 しかし、私はそれを処理することはできません。

は私のアプリのキャッシュを使用するためのヒントを与える。.. plzは...

+0

同じエラーが発生しました...マニフェスト内のすべてのエントリを削除したので、マスターページをキャッシュするだけです(チェック、ダウンロード、エラー)。 –

答えて

2

を間接的yugidroidによってリンク答えは右の行に私を導きました。答えにリンクされているブログは何をすべきかを示しています。

String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath(); 
    webView.getSettings().setAppCachePath(appCachePath); 

私はテストのために再びそれらの行を削除:同じエラー - 再添加:エラーなし!

関連する問題