前兩天遇到這個問題藕坯,卻一直沒時間寫博客矮冬,為了防止別人再入坑铃绒,還是寫下來供大家參考
當前界面呢是安卓原生加載的webview界面,點擊某項之后仍然在當前界面對url進行替換户秤,
紅框里面的銀行都可以點擊跳轉(zhuǎn)迹冤,并且都可以走正常的webview.goback回到此點擊頁面,唯獨民生銀行這個界面點擊后跳轉(zhuǎn)后虎忌,點返回鍵是走的goback泡徙,卻在不停的刷新民生銀行的界面怎么都返不回,一直點擊了三十多次還在刷新民生銀行界面膜蠢,百度了很多都是說是因為某個界面有重定向的話就會出現(xiàn)這種問題堪藐,那么首先我們該如何判斷他是重定向界面呢
WebView有一個getHitTestResult():返回的是一個HitTestResult,一般會根據(jù)打開的鏈接的類型挑围,返回一個extra的信息礁竞,如果打開鏈接不是一個url,或者打開的鏈接是JavaScript的url杉辙,他的類型是UNKNOWN_TYPE模捂,這個url就會通過requestFocusNodeHref(Message)異步重定向。返回的extra為null,或者沒有返回extra狂男。根據(jù)此方法的返回值综看,判斷是否為null,可以用于解決網(wǎng)頁重定向問題岖食。
返回:?return?true; ?webview處理url是根據(jù)程序來執(zhí)行的红碑。?
返回:?return?false;?webview處理url是在webview內(nèi)部執(zhí)行。
那么如果是重定向的呢泡垃,我們就return false,不是重定向就return true
注意:這個shouldOverrideUrlLoading方法里面就不要再寫view.loadUrl(url)了
因為你初始化的時候肯定已經(jīng)load過了析珊,然而這個會默認引用你傳的那個url,
返回時判斷是否能返回上個url蔑穴,不能就直接finish掉這個界面忠寻,希望能幫助到大家