问题:最近项目中遇到WebView在重定向时GOBACK不好用了!我在webview进行表单提交后,返回列表显示提交成功,GOBACK后又进行了一次表单提交....就这样一直循环。

分析:URLx--》URLa --》 URLb--》表单提交(重定向) --》URLa 根据需求,这时候我们在URLa GOBACK应该是返回到URLx的,但是因为有重定向,它会返回到 "表单提交(重定向)"//相当于又提交了一次。

解决思路:建立一个url列表栈,将加载完毕的URL加入到栈,如果当前URL已经进入栈则清除它上面的其他URL 有点像Android里的SingleTop模式。

代码:

     // WebView 配置mWebView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);}@Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);// 添加到url栈addUrlStack(url);}});
 // 添加url栈protected void addUrlStack(String url) {// TODO Auto-generated method stubboolean isx = false;for (int i = 0; i < urlStack.size(); i++) {if (isx) {urlStack.remove(i--);continue;}String stack = urlStack.get(i);if (stack.equals(url)) {isx = true;continue;}}if (!isx)urlStack.add(url);}
 // GOBACKprotected void webviewGoBack() {if (urlStack.size() < 2)finish();else {urlStack.remove(urlStack.size() - 1);String url = urlStack.get(urlStack.size() - 1);mWebView.loadUrl(url);}}

然后在需要GOBACK 的地方直接调用 webviewGoBack();


Android WebView重定向GOBACK问题相关推荐

  1. android webview 重定向 goback,Android WebView 网址重定向影响 goBack

    我们在使用 Android 自带的控件 WebView 访问某网址的时候, 网址会通过某些方式进行重定向. 这时会出现一个问题. 我们在使用 Android 自带的控件 WebView 访问某网址的时 ...

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

    Android WebView重定向问题的解决方案 参考文章: (1)Android WebView重定向问题的解决方案 (2)https://www.cnblogs.com/zimengfang/p ...

  3. android——webview解决goback()后,界面会刷新的问题

    android--webview解决goback()后,界面会刷新的问题 参考文章: (1)android--webview解决goback()后,界面会刷新的问题 (2)https://www.cn ...

  4. Android WebView重定向问题,Android Webview重定向问题解决方法

    项目中需要webview重定向,但是由于一个webveiw里面有许多加载操作,因此在调用webview.goback()方法时,往往达不到我们需要的操作效果. 1.解决方法 WebBackForwar ...

  5. Android WebView重定向

    最近遇到几个android webView加载图片的问题 1.微信支付重定向之后提示 '商家参数格式有误,请联系商家解决' 2.淘宝分享的短链接在webView加载过程中无限重定向 这两个问题都是在a ...

  6. android webview 重定向 多次load问题,解决webview 第二次调用loadUrl页面不刷新的问题...

    一个需求,当点击button按钮时,希望加载另一个url. 以下方法可以成功! @override public void onclick(view view) { webview.loadurl(u ...

  7. Android WebView重定向问题,Android WebView 重定向问题

    将halcon导出的c++程序打包成dll库 1.从"文件"菜单中,选择"新建",然后选择"项目-". 2.从"项目类型" ...

  8. android 服务器返回302,Android WebView 内处理302重定向不跳转的解决

    最近项目中Webview加载第三方的具有302的重定向,但是却发现却没有重新跳转.最后发现问题如下: public boolean shouldOverrideUrlLoading(WebView v ...

  9. WebView重定向和回退栈的问题,goBack不会回退的问题

    原文:http://blog.csdn.net/qq_19729823/article/details/70184623 亲测很有效,原文: 1.问题描述 最近有很多人问我为什么webview加载一个 ...

最新文章

  1. 9. 混合模型和EM(1)
  2. mysql免安装版net不是_MYSQL 免安装版的环境配置
  3. 上拉加载 php,php+jquery 上拉加载
  4. C语言abc输出最小值改错题,C语言程序设计
  5. Java和JavaScript之间的区别
  6. 构造函数,拷贝构造函数,赋值函数
  7. php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. win10系统更新在哪_五步教你win10永久关闭系统自动更新
  9. 华为机试HJ11:数字颠倒
  10. oracle 体系结构初步认识(一)
  11. 如何制作语音聊天程序源码,制作语音社交交友APP
  12. Ubuntu-图形界面和字符界面切换快捷键
  13. Android常用播放器对比,谁更好用?四款Android音乐播放器对比
  14. 如何给自己的手机录制屏幕视频
  15. 大数据技术原理与应用(林子雨)-NoSQL数据库单元测验
  16. mysql2038年后不能启动
  17. 继电器rc吸收电路取值_RC吸收电路的参数选取
  18. 4月22 mysql常用函数
  19. 物联网的涵义、架构、技术和产业概述
  20. 三叉戟核武系统扛不住网络攻击 解决之道在于投入成本

热门文章

  1. 图像频率域分析之频域谱(FDE)
  2. 微软skype收购案
  3. linux内核zfs,Linus Torvalds回应用户抱怨:不建议使用 ZFS On Linux
  4. CSS中常用的几种选择器是哪几种呢?
  5. java kiwi_【Java拾遗】不可不知的 Java 序列化
  6. linux oracle 失败怎么办,Linux开机报错unable to load selinux policy怎么办?
  7. park,clark和ipark浅析
  8. 电脑同时连接有线和无线网络怎么设置有线网络优先
  9. Word中字号和磅值的对应关系
  10. 大姐夫再冲世界首富,亚马逊HQ2的赢家已经初现。。。