1. 程式人生 > >WebView.loadUrl使用誤區

WebView.loadUrl使用誤區

當使用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