当HTML有重定向的时候,回退时会不断往跳转进入死循环。尝试修改webview缓存加载策略以后,不起作用。在网上查阅资料以后,跟

shouldOverrideUrlLoading的返回值为true还是false有关系。可是什么时候才返回true,什么时候返回false呢?
参考http://blog.csdn.net/pimian13611397598/article/details/54973108网页。不过原理不是很懂
 你们有试过加载WebView由于H5 CSS样式中有特殊属性“minimal-ui”无法识别加载不出来的情况么,你们有过在解决完一个问题之后又出来内外一个问题的时候么,
你们有给别人找到了BUG,完了自己要去给别人填坑的时候么,你有的,你肯定有的......
今天这个问题可以说是一个低级的问题,就是webView返回控制的时候无法回退
上模型:
webView.loadUrl(A);
A是一个可变的域名,可变的域名,可变的域名,重要的事情说三遍
Eg: A="www.baidu.com"
加载之后重定向为:
A="www.baidu_1.com"
那么问题来了,就是域名变了么,如果是这么容易我还在这儿废话,麻蛋,百度的一个解决方案,一个现成的模板,然后运营妹纸直接拿来用的,没源码,你懂得,加载的时候不是必现的,
偶尔会重定向,偶尔不会,我就xxxx,各种调试,
最后解决方案:
WebView.HitTestResult hitTestResult = view.getHitTestResult();
WebView有一个getHitTestResult():返回的是一个HitTestResult,一般会根据打开的链接的类型,返回一个extra的信息,如果打开链接不是一个url,或者打开的链接是JavaScript的url,
他的类型是UNKNOWN_TYPE,这个url就会通过requestFocusNodeHref(Message)异步重定向。返回的extra为null,或者没有返回extra。根据此方法的返回值,判断是否为null,
可以用于解决网页重定向问题。
一句话返回为null就加载链接,否则该干嘛干嘛
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
new GetTitleAsync().execute(url);
WebView.HitTestResult hitTestResult = view.getHitTestResult();
// hitTestResult==null解决重定向问题
if (!TextUtils.isEmpty(url) && hitTestResult == null) {
view.loadUrl(url);
return true;
}
// WebBackForwardList mWebBackForwardList = webview.copyBackForwardList();//获取栈内存在的URL
// for (int i = 0, p = mWebBackForwardList.getSize(); i < p; i++) {
// Log.e("====", "" + mWebBackForwardList.getItemAtIndex(i).getUrl());
// }
return super.shouldOverrideUrlLoading(view, url);
}

  

android webview重定向 返回按钮死循环问题修改的更多相关文章

  1. Ionic2 下处理 Android 设备下返回按钮的事件

    原文发表于我的技术博客 本文分享了 Ionic2 下处理 Android 设备下返回按钮的事件,供参考. 原文发表于我的技术博客 代码中我分享了如何捕捉 Ionic2 项目在 Android 设备下返 ...

  2. android toolbar 显示返回按钮并改变按钮颜色

    <android.support.design.widget.AppBarLayout android:id="@+id/about_appbar" android:layo ...

  3. Android WebView重定向问题的解决方案

    当WebView在加载网页时,有时会有重定向问题,返回键回退怎么也回退不掉,怎么办? WebView有一个getHitTestResult():返回的是一个HitTestResult,一般会根据打开的 ...

  4. Android WebView 重定向问题

    webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(Web ...

  5. Android Actionbar 添加返回按钮

    setHomeButtonEnabled这个小于4.0版本的默认值为true的.但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击.没有向左的小图标. true 图标可以点击 ...

  6. Ionic3学习笔记(四)修改返回按钮文字、颜色

    本文为原创文章,转载请标明出处 目录 修改返回按钮文字 修改返回按钮颜色 1. 修改返回按钮文字 参考官网 Ionic API---Config 文档 可在 ./src/app/app.module. ...

  7. ToolBar修改返回按钮图标

    使用Toolbar时,有时因为不同的手机设备,不能使用系统默认的主题样式或者图标,必须指定特定的资源,防止APP在不同设备上的效果不一样! 我在使用Toolbar时,把这个布局作为一个公共的了,所以修 ...

  8. iOS7 修改导航系统默认返回按钮文字及颜色

    //iOS7 修改系统默认返回按钮文字及颜色 UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返" ...

  9. ios 修改导航条返回按钮

    ios 修改导航条返回按钮 方式一:使用系统的:可以更改系统的文字:以及通过设置导航条的颜色来达到预期的效果 UIBarButtonItem *backBtns = [[UIBarButtonItem ...

随机推荐

  1. 云主机和vps的区别

    云主机和vps的区别   近年来,IT行业开始热衷于各种云概念,而云主机就是其中之一,并且有越来越热之势.对普通用户而言,可能不太清楚云主机和VPS的区别,下面我们就来说说云主机和VPS到底有什么不同 ...

  2. ubuntu下ftp服务

    (1).首先用命令检查是否安装了vsftpd vsftpd -version 如果未安装用一下命令安装 sudo apt-get install vsftpd 安装完成后,再次输入vsftpd -ve ...

  3. canvas线条的属性

    一.线条的帽子lineCap 取值:butt(默认值),round圆头,square方头 var canvas=document.getElementById("canvas"); ...

  4. flex布局简析

    最近开始对flex布局进行一个重新的认识. 首先. flex布局适用于所有元素 但是注意一点的就是,一旦父级元素设定flex布局的时候,子元素的传统布局属性, float,clear,vertical ...

  5. Spring Boot 2.0(五):Docker Compose + Spring Boot + Nginx + Mysql 实践

    我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的便利,是的,我也是这样认为的,I know your felling . 前期了解概念什么的确实 ...

  6. 小委出发vijos-1572 jdoj-1572

    小委出发 题目大意:一个长度为n的字符串,由()[]{}组成.求最长的和谐字符串:我们对最长和谐字符串的定义就是每一个括号有一个性质相同的括号与之匹配,这两个括号中间要么为空,要么也是和谐的.几个连续 ...

  7. markdown语法小结

    引用数学公式1 \[ \begin{equation} \pi^2=x^2+y \label{eq_lab1} \end{equation} \] Here we cite this equation ...

  8. rtmp发布录制视频

    本文描述了rtmp发布本地视频的流程 一.简要介绍 RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection):第二步,建立一个网络流(NetStream) ...

  9. 【Alpha版本】冲刺阶段 - Day2 - 漂流

    今日进展 袁逸灏:实现车辆的子弹发射(3.5h) 启动类,子弹类(修改类),游戏画面类(修改类) 刘伟康:继续借鉴其他 alpha 冲刺博客,初步了解墨刀.leangoo等工具(2h) 刘先润:解决了 ...

  10. 敏捷冲刺每日报告--day1

    1 团队介绍 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(267),蔡凯峰(285)  Git链接:https://github.com/WHUSE2017/C-team 2 ...