​ 在Android中使用WebView加载网页时,会遇到网页的重定向问题,此时调用WebView的goBack方法返回时无法回退,通过查阅资料发现两种方式可以实现重定向下的网页回退,测试都可以使用。

一、使用WebView的getHitTestResult方法

​ WebView提供了一个getHitTestResult()方法,该方法返回值为WebView.HitTestResult类型,通过对返回值的getType()或getExtra()方法获取的值进行判断,确定网页的重定向。具体实现:此方法参考

1
2
3
4
5
if (view.getHitTestResult().getType() == WebView.HitTestResult.UNKNOWN_TYPE) {
view.loadUrl(url);
return true;
}
return super.shouldOverrideUrlLoading(view, url);

二、设置shouldOverrideUrlLoading返回值为false

​ shouldOverrideUrlLoading()方法是用来处理WebView加载url地址的方法,返回值为false表示由WebView来处理url地址的加载,返回值为true则表示由编写的程序控制url加载的处理。

​ 通过设置返回值为false由WebView控制url的加载可以解决重定向后的返回问题,不过在对于需要控制url的加载时不方便,需要根据实际使用确定使用哪种方法。