在app开始时,我使用webview缓存一个url(我没有添加到布局中以使其对用户不可见),如下所示:
public void doOfflineCaching (final Context context) {
final WebView w = new WebView(context);
BaseWebView.setDefaultSettings(w.getSettings(), context);
w.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon){
getLogger().debug("caching(" + url + ") ...");
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
getLogger().debug("caching(" + url + ") ... finished");
super.onPageFinished(view, url);
}});
w.setWebChromeClient(new WebChromeClient ());
String url = BaseClass.getInstance().buildBaseUrl(context.getResources().getString(R.string.bib_url));
w.loadUrl(url);
}
BaseWebView.java:
public static void setDefaultSettings(WebSettings settings, Context context) {
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setLoadsImagesAutomatically(true);
settings.setGeolocationEnabled(true);
settings.setGeolocationDatabasePath("/data/data/fcmsWebapp");
settings.setAppCacheEnabled(true);
settings.setAppCachePath(context.getCacheDir().getAbsolutePath());
settings.setUserAgentString(UserAgent.getInstance().getUserAgent());
}
如果应用处于离线状态,我会在“主要网页浏览”中加载缓存的网址。使用以下缓存模式:
getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY);
主要Webview'确实加载了setDefaultSettings-method。并且还设置了WebChromeclient / WebViewClient。
缓存网址的第一次加载按预期工作:
但如果我重新加载网址,它看起来像这样:
重新加载后,网站再次正常,下次重新加载就会破坏等等......
在Nexus 10 / Android 5.1上测试过 任何人都可以帮助我吗?