Android webview无法正确加载CSS

时间:2015-04-20 14:37:29

标签: android css caching webview

在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。

缓存网址的第一次加载按预期工作:

enter image description here

但如果我重新加载网址,它看起来像这样:

enter image description here

重新加载后,网站再次正常,下次重新加载就会破坏等等......

在Nexus 10 / Android 5.1上测试过 任何人都可以帮助我吗?

0 个答案:

没有答案