當WebView在加載網頁時,有時會有重定向問題,返回鍵回退怎麼也回退不掉,怎麼辦?markdown
WebView有一個getHitTestResult():返回的是一個HitTestResult,通常會根據打開的連接的類型,返回一個extra的信息,若是打開連接不是一個url,或者打開的連接是JavaScript的url,他的類型是UNKNOWN_TYPE,這個url就會經過requestFocusNodeHref(Message)異步重定向。返回的extra爲null,或者沒有返回extra。根據此方法的返回值,判斷是否爲null,能夠用於解決網頁重定向問題。異步
1 @Override 2 public boolean shouldOverrideUrlLoading(WebView view, String url) { 3 WebView.HitTestResult hitTestResult = view.getHitTestResult(); 4 //hitTestResult==null解決重定向問題 5 if (!TextUtils.isEmpty(url) && hitTestResult == null) { 6 view.loadUrl(url); 7 return true; 8 } 9 return super.shouldOverrideUrlLoading(view, url); 10 }