WebView到底该使用loadUrl还是loadData

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也许并没有我说的那么不堪,也可能是我自己的水平问题。