解決webview 第二次調(diào)用loadUrl頁面不刷新的問題
一個需求,當點擊Button按鈕時,希望加載另一個Url。
以下方法可以成功!
@Override
public void onClick(View view) {
webview.loadUrl(url);
webview.loadUrl( "javascript:window.location.reload( true )" );
}
親測管用!
補充知識:WebView.loadUrl使用誤區(qū)
當使用loadUrl加載網(wǎng)頁的時候,有時候會出現(xiàn)調(diào)用系統(tǒng)瀏覽器加載網(wǎng)頁的現(xiàn)象,網(wǎng)上大部分的解決方案是 :
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
}
這確實可以達到在當前webview加載網(wǎng)頁的效果,但是卻做了多余的工作,以及不合理的返回值。
實際上,如果你只需要避免啟動系統(tǒng)瀏覽器來加載頁面的情況,只需要這么寫就可以了
webView.setWebViewClient(new WebViewClient());
完全不需要另外寫個類繼承WebViewClient,然后在重寫它的方法。
當應用場景更復雜的時候,你就能發(fā)現(xiàn)網(wǎng)上提供的方法的弊端了:
url存在重定向,無法回退
shouldOverrideUrlLoading(WebView view, String url)
的返回值決定了webview是否自動處理該url,也就是是否加載。當返回true時,由程序處理,當返回false時,webview會自己處理,也就是相當于自動執(zhí)行了loadUrl方法。
以上這篇解決webview 第二次調(diào)用loadUrl頁面不刷新的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Android使用socket進行二進制流數(shù)據(jù)傳輸
這篇文章主要介紹了Android使用socket進行二進制流數(shù)據(jù)傳輸,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2023-04-04
Android jni調(diào)試打印char陣列的實例詳解
這篇文章主要介紹了Android jni調(diào)試打印char陣列的實例詳解的相關資料,通過此文希望能幫助到大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-08-08
Android sharedPreferences實現(xiàn)記住密碼功能
這篇文章主要為大家詳細介紹了Android sharedPreferences實現(xiàn)記住密碼功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

