关于Webview执行goBack不能返回的问题解决
1.问题描述
最近有很多人问我为什么webview加载一个网页,执行了goback网页不能返回的问题,我特此来为那些有问题的或者说有遇到这个问题不知道怎么下手解决的,可以看看下面的解答,或许会对你有所帮助吧。
2.问题原因
webview执行goback为什么不能返回上一页面,而为什么有的网页可以返回上一个页面呢?这到底是什么原因导致的这个问题呢?是因为web页面在被打开的时候是以url1打开,一部分网页是执行了重定向,那么它就会定向到另外一个url2地址上面去,导致你goback返回是返回了,当它从url3返回的时候其实并不是跳转到url2,而是直接返回到url1,而跳转到url1,又因为url1是打开后直接进行重定向的,那么就直接又跳转到url2了,所以会一直循环执行。所以你退不出去。而另外一部分是可以退回上一个页面是因为这些页面没有重定向的操作。所以会直接退回到上一个面。
3.解决方案
既然我们知道了其中的原理,那么看看找找webview有没有什么方法可以解决方案的。
其实,解决这个问题很简单,webview的webViewClient这个玩意,这个玩意就不多说了,大家看看里面的方法就知道干什么的了。这个属性可以监听网页的刚开始打开的网页,和跳转后的网页,这两个方法分别是onPageStarred 和 shouldOverUrlLoading,这两个方法可以解决大家的问题。怎么去用。看看下面的代码
webView.setWebViewClient(new WebViewClient() {
private String startUrl;
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
loadingView.show();
startUrl = url;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(startUrl!=null && startUrl.equals(url))
{
view.loadUrl(url);
}
else
{
//交给系统处理
return super.shouldOverrideUrlLoading(view, url);
}
return true;
}
});
通过上面的代码就可以解决大家的问题了。
4.联系本人
QQ:553873475 邮箱 javaztao@gmail.com
关于Webview执行goBack不能返回的问题解决相关推荐
- Webview执行goBack不能返回
1.问题描述 最近有很多人问我为什么webview加载一个网页,执行了goback网页不能返回的问题,我特此来为那些有问题的或者说有遇到这个问题不知道怎么下手解决的,可以看看下面的解答,或许会对你有所 ...
- Centos执行shell命令返回127错误
Centos执行shell命令返回127错误 在终端可以正常运行 web执行shell 返回127错误 解决方法 应该是运行环境和登录用户的运行环境存在差异造成的 在脚本执行之前,添加. /etc/p ...
- python执行linux命令返回结果_Python中调用Linux命令并获取返回值
方法一.使用os模块的system方法:os.system(cmd),其返回值是shell指令运行后返回的状态码,int类型,0表示shell指令成功执行,256/512表示未找到,该方法适用于she ...
- CQRS实践(3): Command执行结果的返回
上篇随笔讨论了CQRS中Command的一种基本实现. 面对UI中的各种命令,Controller会创建相应的Command对象,然后将其交给CommandBus,由CommandBus统一派发到相应 ...
- 微信公众号监听返回按钮问题解决
2017年12月21日 微信公众号监听返回按钮问题解决 //首页返回路径 $(function(){pushHistory();var bool = false;setTimeout(function ...
- android getChildAt(index)返回null问题解决方法
android getChildAt(index)返回null问题解决方法 参考文章: (1)android getChildAt(index)返回null问题解决方法 (2)https://www. ...
- java调用sql返回list_Hibernate执行原生SQL返回ListMap类型结果集
我是学java出身的,web是我主要一块: 在做项目的时候最让人别扭的就是hibernate查询大都是查询出List(T指代对应实体类)类型 如果这时候我用的联合查询,那么返回都就是List , 这样 ...
- mysql sys exec_mysql提权lib_mysqludf_sys执行sys_exec出现32256的问题解决办法
使用lib_mysqludf_sys提权,执行select sys_exec返回数字32256问题的主要原因是所执行的shell脚本无权限,也就是mysql无法执行,将shell脚本放在mysql s ...
- 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值...
关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...
最新文章
- 神策合肥研发中心携手安徽开发者社区,深入交流共促行业发展
- 将CSDN600W用户及密码帐号存入本地MySql数据库
- 【Boost】boost库asio详解5——resolver与endpoint使用说明
- SAP CRM调查问卷的评分和图表显示功能介绍 1
- 基于国家标准的 EndNote 输出样式模板
- 重学java基础第一课:解决大家的疑问
- poj 2891 Strange Way to Express Integers
- 使用jfreechart来创建一个简单的饼图
- java se 8 新特性_javase8-sample
- Luogu P2733 家的范围 Home on the Range
- 路痴福音!高德地图上线真AR步行导航,可实景指引
- Log4net使用详细说明
- 抖音同款表白神器(按钮漂移)
- 阿里巴巴国际站组合标题的小技巧
- TypeError: object() takes no parameters
- Shell 脚本正则表达式(一)
- 大脑神经网络具有什么性,神经网络跟大脑的关系
- Yii2 event tigger 关于事件的简单使用
- TopCoder SRM 577 Div2 1000 EllysCoprimesDiv2
- 微型计算机的显卡,来看一款冷酷的游戏显卡,XFX讯景Radeon RX 6700XT海外版OC评测...