WebView加载数据有两种方式,一种是直接根据一个url来加载一个网页,另一种是只加载一段html文本,两种方法各有利弊。
如果是加载的html文本很简单,对排版的要求不高,那么使用loadData比较好,毕竟只是很省流量的方式,而且还可以将数据保存在本地,做离线缓存。
如果排版比较复杂,还是用loadUrl吧,虽然loadUrl需要消耗更多的流量,也不好做离线缓存,但是loadUrl充分发挥了webview的优势,试想如果用loadData这种方式,为什么不直接用TextView,TextView也可以支持有限的html标签,再自己扩展下,已经足够用了。
其实让我选择loadUrl的原因还有一个,那就是在使用loadData的时候遇到了渲染的问题,字体有时候看起来很小。
但是使用loadUrl需要特别注意里面的链接的问题,当点击一个链接的时候,默认会让浏览器来打开这个链接,可以通过如下代码来让链接在WebView中打开。
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
当然使用loadData也许并没有我说的那么不堪,也可能是我自己的水平问题。