android webview加载h5页面,遇见后台重定向的页面,点击返回键一直退不出去进入到加载页面

本文介绍了一种在WebView中遇到的重定向导致无法正确后退的问题及其解决方案。通过重写shouldOverrideUrlLoading方法并返回true,可以确保点击链接时页面在WebView内部加载,避免了因重定向而导致的历史记录混乱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目是webview+h5wan完成的,除啦自己网站的h5还有地方用到第三方的web页面,其中有个页面有重定向到另外一个页面,造成了页面无法后退,后退到上个页面,又重定向到之前界面,重定向源页面也被加入到浏览记录中,刚开始想查找api中找个编辑历史记录的方法,把找重定向源页面从历史记录中删除,半天找不到,只有clearHistory方法。

后用浏览器访问该网站,则后退正常,会退到重定向页面。用微信内置WebView ,QQ内置WebView打开该页面后退也正常,发现重定向源页面也被加入到浏览记录中。

 

纠结半天,阿紫网上而不使用Webview.goBack(),在stackOverflow上找也大都是这些。感觉这些方法不完美,没有从根本上解决问题。总感觉还有更好的方法,一个偶然情况下发现了解决方案。


在使用WebView的时候,我们一般都会设置WebViewClient ,重写shouldOverrideUrlLoading方法,让webView加载点击url,并return true。因为不这样设置,点击页面上的链接弹出浏览器

设置过后就没问题啦。前面拦截的地方是识别网页中的电话。

有关重定向的文章:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Redirections

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值