我正在尝试在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中运行,此链接用于支持的平台。 Application Cahce Supported platforms
所以,任何建议都会有所帮助。
答案 0 :(得分: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)
答案 1 :(得分:1)
对于pathToCacheDir,请使用:
String pathToCacheDir = this.getApplicationContext().getCacheDir().getAbsolutePath()
答案 2 :(得分:1)
你设置了正确的mime类型吗? 起初我使用'.txt'就像thie:
<!DOCTYPE html>
<html manifest="cache.txt">
<head>
在iOS,Chrome中运行良好但在Android中无效!
当我设置正确的mime-type时,它运行良好〜
在tomcat中,默认扩展名为“.appcache”,默认的mime-type为:
<mime-mapping>
<extension>appcache</extension>
<mime-type>text/cache-manifest</mime-type>
</mime-mapping>