WebView重定向问题的解决方案

Posted zimengfang的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebView重定向问题的解决方案相关的知识,希望对你有一定的参考价值。

当WebView在加载网页时,有时会有重定向问题,返回键回退怎么也回退不掉,怎么办?

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 }

 

以上是关于WebView重定向问题的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

WebView重定向新开界面问题-b

如何在 webview 中捕获网站重定向

Android Rotation 重定向到 webview 的根 URL

想要在 webview android 中完成 url 加载后将 webview 重定向到其他意图

如何从webapp重定向到Google云端硬盘应用

Android WebView 不加载自动重定向 url