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

