loadDataWithBaseURL没有加载远程CSS

时间:2014-06-12 06:44:23

标签: android css android-webview

我有一个应用程序可以下载页面的HTML数据,然后使用loadDataWithBaseURL将其加载到Web视图中,以便可以预先加载数据并在用户离线时始终可用。问题是即使设备在线,HTML中的CSS文件也不会从基本URL加载。图像工作正常,但格式化全部关闭。我在这里看到的所有其他问题都存在相反的问题,他们正在尝试加载本地CSS文件,或者他们使用的是loaddata而不是loadDataWithBaseUrl,所以此处搜索到目前为止并没有帮助我。

以下是获取HTML数据的代码:

public static String getUrlContent(Context context, String url) {
    String result = null;
    try {
        HttpClient http_client = new DefaultHttpClient();
        HttpPost http_post = new HttpPost(url); 
        HttpResponse response = http_client.execute(http_post); 

        result = EntityUtils.toString(response.getEntity());
    } catch(Exception e) {
        e.printStackTrace();
    }       
    return result;  
}

在网络视图中加载网址的代码非常简单:

loadDataWithBaseURL(context.getString(R.string.base_url), data, "text/html","utf-8","");

使用configuration.xml文件中的base_url值显然是HTML数据的基本URL。我仔细检查它的值是否正确,但仍未收到我的网页视图输出的正确格式。

我的网页视图设置如下:

WebSettings settings = getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setPluginState(PluginState.ON);
settings.setAllowFileAccess(true);
settings.setDefaultTextEncodingName("utf-8");
settings.setUseWideViewPort(false);
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
    settings.setAllowUniversalAccessFromFileURLs(true);

我也使用自定义网络浏览客户端和网络浏览器客户端,但是禁用这些客户端并不能解决问题,因此我认为它们的代码并不相关。大多数CSS都在html中与链接标签链接,如果这有助于任何。

0 个答案:

没有答案