(Bug记录)WebView加载多个Url,不能正常返回到上一级页面

问题场景

多个web View入口 多层web View 多次点击之后不能这个厂返回上一级页面并且出现了加载页面错乱现象

问题原因
web View的缓存机制 导致从一个web View入口退出之后没有及时销毁加载的网页 造成的退出上一级的时候加载的是缓存机制里的WebView页面 

解决方法

思路:在webView的加载监听(setWebviewClient)中提供了一个shouldOverrideUrlLoading()方法来加载url 所以在点击webView进入页面的时候要先对上个入口加载的url进行清空历史处理 接下来再加载新的url 就有效避免了url重复展示

代码展示

but1=findViewbyId(R.id.btnOne);
btn2=fingdViewById(R.id.btnTwo);
//两个按钮都点击跳转WebView 
private boolean isClearHistory=fale;//定义是否清除历史变量
//按钮点击事件
onClick{
  case R.id.btn1:
isClearHistory=true;//清除历史
initWeb();//展示Url
break:
case R.id.btn2:
isClearHistory=true;
initWeb();
break;
}


private void initWeb(){


webView.setWebViewClient(new WebViewClient() {  

        @Override  
        public boolean shouldOverrideUrlLoading(WebView view, String url) {  
if(isCliearHistory){
//这里证明是重新进入页面 先清空历史再展示
webView.clearHistory(true);
isClearHistory=false;
}else{
webView.setUrl("");
isClearHistory=true;
}
            return false;  
        }  

    }); }

先记这么多 有问题欢迎指出问题 相互学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值