webview加载自定义错误页面,刷新后返回又回到默认错误页面的问题

本文介绍了一种在WebView中处理网络错误、断开连接或加载失败情况下的刷新机制。通过使用window.location.replace()方法,可以确保错误页面被实际需要刷新的URL替换,而非简单加载,从而避免了错误页面URL进入历史栈的问题。

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

场景:
需要在网络错误,网络断开,加载失败等情况下,webview加载一个默认的错误页面,页面有一个刷新按钮,点击按钮,刷新页面,很明显,我们要刷新的页面是错误页面的前一个页面,但webview会把当前错误页面的url也加进历史栈,此时,我们的刷新逻辑应该是replace当前错误页面而不是load一个新页面。

webview的api中并没有replace类似的方法,但浏览器自带window.location.replace(),所以我们得通过和js交互实现该功能。

 webview.loadUrl("${MacConstant.JAVASCRIPT}:window.location.replace('" + url + "')")

这样我们实际需要刷新的url就会替换掉当前的错误页面url,并且栈中错误页面url会被替换掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值