1. 程式人生 > 程式設計 >解決webview 第二次呼叫loadUrl頁面不重新整理的問題

解決webview 第二次呼叫loadUrl頁面不重新整理的問題

一個需求,當點選Button按鈕時,希望載入另一個Url。

以下方法可以成功!

@Override
public void onClick(View view) {  
  webview.loadUrl(url);
  webview.loadUrl( "javascript:window.location.reload( true )" );
}

親測管用!

補充知識: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方法。

以上這篇解決webview 第二次呼叫loadUrl頁面不重新整理的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。