将内容加载到WebView

时间:2013-03-23 17:29:45

标签: android android-webview

我想将this content加载到WebView:

当我尝试这样的时候:

myWebView.loadUrl(myUrlAdress);

它正在加载内容,但所有html格式都可见,所以我可以看到所有段落标签和css样式定义,所以它就像一个纯文本。

当我尝试这样的时候:

myWebView.loadDataWithBaseURL(myUrlAdress, null, "text/html", "UTF-8", null);

没有任何反应,webview在没有任何数据的情况下保持空白。

我尝试的最后一种方式是:

myWebView.loadDataWithBaseURL(myUrlAdress, myUrlAdress, "text/html", "UTF-8", null);

这次webview只是打印链接,我尝试获取数据,没有别的。

有人可以告诉我哪条路可走,问题是什么?

1 个答案:

答案 0 :(得分:1)

问题是服务器正在返回内容类型text / json,因此带有loadUrl的WebView并不知道它应该解析并显示HTML。当您使用loadDataWithBaseUrl时,数据字符串必须是实际的HTML,而不仅仅是URL,这是您提供的。如果您无法控制服务器输出,那么您需要将数据下载到字符串并将该字符串作为数据加载到webview,就像这样作为活动的内部类:

public class WebLoader extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {
        try {
            final HttpClient client = new DefaultHttpClient();
            final HttpGet request = new HttpGet(params[0]);
            BasicResponseHandler handler = new BasicResponseHandler();
            return client.execute(request, handler);
        }
        catch (Exception e) {
            // do something
            return null;
        }
    }

    @Override
    protected void onPostExecute(String html) {
        webview.loadDataWithBaseURL(url, html, "text/html", "UTF-8", null);
    }

}