我想将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只是打印链接,我尝试获取数据,没有别的。
有人可以告诉我哪条路可走,问题是什么?
答案 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);
}
}