关于Webview执行goBack不能返回的问题解决
2017-04-15 15:08
447 查看
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(We
4000
bView 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网页不能返回的问题,我特此来为那些有问题的或者说有遇到这个问题不知道怎么下手解决的,可以看看下面的解答,或许会对你有所帮助吧。
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(We
4000
bView 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()在有的网页无法返回的问题的解决方法
- 关于Android原生集成5+webview,监听webview返回时,执行两次onkey方法问题的解决
- [安卓开发]关于WebView执行js 会输出的问题解决
- 关于webview加载网页,返回后总是刷新页面问题解决
- webview shouldOverrideUrlLoading 页面不能正常返回问题
- webview加载页面,JS方法不能加载的问题解决
- 解决关于Vs.net2003的不能调试WEB项目的问题(转)
- 关于expandableliatview的getChildView不执行的问题的解决
- 关于解决pyinstaller2.1将.py打包成exe文件在中文目录下不能执行的问题
- 在含有WebView、ScrollView和TableView等的Controller中侧滑返回无效,解决侧滑返回,又遇到假死问题的解决办法
- 解决android 5.0 webview不能加载http与https混合内容的问题
- webView加载Html5按钮,JS不能调用问题的解决
- 关于EditText或WebView文字长按,actionMode出错问题解决方案
- 解决webview调用 goBack() 返回上一页自动刷新闪白的情况
- 解决android 5.0 webview不能加载http与https混合内容的问题
- 解决android 5.0 webview不能加载http与https混合内容的问题
- 解决 iOS 8 WebView 不能呼叫客户端的问题
- 关于WebView的loaddata方法中文乱码问题解决,记录而已。
- 关于Web程序打开Word、Excel后,不能关闭的问题的一个解决办法