也谈谈webview因为重定向而无法goBack的问题
来源:互联网 发布:淘宝子账号手机登录 编辑:程序博客网 时间:2024/05/16 08:12
String str="http://www.baidu.com";Log.i("TAG","str="+str);webView.loadUrl(str);
如以上的代码,
你会发现会一直无法finish掉当前页面,这是为什么呢?
经过调试,你会发现weBView.canGoBack一直为true,所以一直无法执行finish()的操作。
再仔细一看,http://www.baidu.com并不是正确的网址,正确的是https://www.baidu.com。
而使用webview加载http://www.baidu.com网址,会通过http://n.cosbot.cn/cl/html/bd1.html网址重定向到https://www.baidu.com。
因此cangoBack一直为true,就不难理解了,返回到http://n.cosbot.cn/cl/html/bd1.html,又重回到https://www.baidu.com。
那如何解决这个问题,如果url没错误,可以给webview设置:(如果不这样设置,你会发现网页返回到第一个网页,有可能加载最早的url,导致页面一直无法finish掉
如果你用第三方的网页,而第三方网页有重定向的url:
就只能在goBack()中进行处理:
public void goBack() { // 获取历史列表 WebBackForwardList mWebBackForwardList = webview .copyBackForwardList(); // 判断当前历史列表是否最顶端,其实canGoBack已经判断过 if (mWebBackForwardList.getCurrentIndex() > 0) { // 获取历史列表 String historyUrl = mWebBackForwardList.getItemAtIndex( mWebBackForwardList.getCurrentIndex() - 1).getUrl(); Log.e("历史记录", "historyUrl = " + historyUrl);//在以下代码中,找出重定向链接,进行处理,一般是把重定向链接删除,可以参考下面图片
// if (historyUrl.equals("http://n.cosbot.cn/cl/html/bd1.html"))//此是百度的重定向域名,如果重新回到百度,则让它跳转首页// {// Log.i("TAG","I come here!");// main.getViewPager().setCurrentItem(0);// } // 按照自己规则检查是否为可跳转地址 // 注意:这里可以根据自己逻辑循环判断,拿到可以跳转的那一个然后webView.goBackOrForward(steps) webview.goBack(); } }
暂时就写到这里,有好的建议欢迎补充!
0 0
- 也谈谈webview因为重定向而无法goBack的问题
- 解决Android Webview 重定向无法 goback 的方法
- Android WebView重定向GOBACK问题
- Android WebView 因重定向无法正常goBack()解决方案
- Android WebView 因重定向无法正常goBack()解决方案
- Android WebView 因重定向无法正常goBack()解决方案
- Android WebView 因重定向无法正常goBack()解决方案
- Android WebView 因重定向无法正常goBack()解决方案
- Android WebView 因重定向无法正常goBack()解决方案
- Android WebView 因重定向无法正常goBack()解决方案
- Android WebView重定向的网页无法goBack()的几个解决方案
- Android WebView 因重定向无法正常goBack()的一种解决小方案
- shouldOverrideUrlLoading()重定向,无法返回跳出WebView的问题
- Android WebView 的回退方法(goback) 遭遇重定向
- Android WebView 回退到原生goback() 遭遇重定向
- 关于WebView.goBack()在有的网页无法返回的问题的解决方法
- WebView重定向问题的解决方案
- WebView重定向问题的解决方案
- android studio中打包混淆
- QRegExp一些注意事项(正则表达式和模式匹配)
- libusb的使用
- Linux Shell超详细系列教程
- 关于android:configChanges的属性
- 也谈谈webview因为重定向而无法goBack的问题
- Object下的hashCode方法
- MTK平台camera小结(一)
- STL 2016.7.13
- 布局内容改变动画
- 算法导论第十六章-贪心算法-Cpp代码实现
- SpringMVC 原理
- ambari-server start 出错
- 深入理解计算机操作系统(笔记)