1

我正在尝试在 a 中加载网页WebView,但是当检索该页面时,我丢失了所有样式信息,可能是我的 Web 视图中未正确使用 CSS 文件。

为了检索我HTTP POST以这种方式使用的数据:

public void postData() throws IOException, ClientProtocolException {
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
    nameValuePairs.add(new BasicNameValuePair("param1", "parameter1"));  
    nameValuePairs.add(new BasicNameValuePair("param2", "parameter2"));

    HttpClient httpclient = new DefaultHttpClient();  
    HttpPost httppost = new HttpPost(URL_STRING);  
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));  

    HttpResponse response = httpclient.execute(httppost);  
    String data = new BasicResponseHandler().handleResponse(response);
    WebView mWebView = (WebView) findViewById(R.id.wv);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadData(data, "text/html", "utf-8");
}

我怎么解决这个问题?

4

1 回答 1

5

问题是相对路径href="/maindir/css/sites.css"

解决方案1:( 在服务器更改)

如果您有权访问网络服务器,请尝试在<link type="text/css" rel="stylesheet" href="/maindir/css/sites.css">. 因此,/maindir/css/sites.css您将拥有http://your.domain.com/maindir/css/sites.css

解决方案2:(在客户端更改)

而不是mWebView.loadData(data, "text/html", "utf-8");使用方法loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)将使用该baseUrl字符串来使相对路径起作用。

结果将类似于:

mWebView.loadDataWithBaseURL("http://your.domain.com/", data, "text/html", "utf-8", null);

于 2013-03-14T20:15:46.950 回答