WebView.loadUrl使用誤區
阿新 • • 發佈:2018-12-31
當使用loadUrl載入網頁的時候,有時候會出現呼叫系統瀏覽器載入網頁的現象,網上大部分的解決方案是 :
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
}
這確實可以達到在當前webview載入網頁的效果,但是卻做了多餘的工作,以及不合理的返回值。
實際上,如果你只需要避免啟動系統瀏覽器來載入頁面的情況,只需要這麼寫就可以了
webView.setWebViewClient(new WebViewClient());
完全不需要另外寫個類繼承WebViewClient,然後在重寫它的方法。
當應用場景更復雜的時候,你就能發現網上提供的方法的弊端了:
- url存在重定向,無法回退
shouldOverrideUrlLoading(WebView view, String url)的返回值決定了webview是否自動處理該url,也就是是否載入。當返回true時,由程式處理,當返回false時,webview會自己處理,也就是相當於自動執行了loadUrl方法。更詳細的內容請參考http://blog.csdn.net/zhongwn/article/details/48732787