webview重定向终极解决方案

问题:第三方重定向链接在APP内部无法返回退出

通过网上收集验证:这些方式都是有缺陷的

1、WebView.HitTestResult为空方式

2、自定义ArrayList收集加载url

解决方案:交给webview自身处理,webview自己有对重定向完美兼容处理

注意:shouldOverrideUrlLoading拦截中不仅仅返回false,中间自生不能view.loadUrl加载,全部交给系统处理

1、导致系统重定向失误写法
webView.setWebViewClient(new WebViewClient() {
	@Override
	public boolean shouldOverrideUrlLoading(WebView view, String url) {

		view.loadUrl(url);
		return true;
	}
});

2、正确写法
webView.setWebViewClient(new WebViewClient() {
	@Override
	public boolean shouldOverrideUrlLoading(WebView view, String url) {

        //view.loadUrl(url); //禁止放开此段代码注释,否则导致重定向失效

        //转发交给webview自己处理
		return false;
	}
});

万万没有想到解决重定向问题,就在shouldOverrideUrlLoading中处理,我们更加深刻解析此方法的返回值用法。

参考网站:

0、http://www.benjyair.com/2014/11/11/%E5%85%B3%E4%BA%8EWebView%E5%9B%A0url%E9%87%8D%E5%AE%9A%E5%90%91%E8%80%8C%E5%AF%BC%E8%87%B4%E6%97%A0%E6%B3%95goBack%E7%9A%84%E9%97%AE%E9%A2%98/

1、https://www.jianshu.com/p/3474cb8096da

2、https://www.jianshu.com/p/7dfb8797f893

你可能感兴趣的:(Android,webview)