2021-04-27 webview问题记录

博客探讨了在Android项目中遇到的WebView加载问题,特别是shouldOverrideUrlLoading方法不执行的困境。作者尝试了两种参数类型的重写方法,但未成功。为解决此问题,提出了通过WebChromeClient的onProgressChanged方法监听网页加载,并在Activity的onResume中恢复先前URL的方案,确保页面状态的正确恢复。

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

项目中webview踩坑 

shouldOverrideUrlLoading始终不执行问题

先说结果   最终还是没能解决 该方法不执行的问题

引用“

在这里说一下咱们重写的这个方法shouldOverrideUrlLoading有两种参数类型:

1、public boolean shouldOverrideUrlLoading(WebView view, String url);Android7.0后被废弃

2、 public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request);
 ”

这两方法试过了 依旧是不执行  

 

个人解决思路是 

class ChromeClient extends WebChromeClient {

    @Override
    public void onProgressChanged(WebView view, int newProgress) { 
//todo 处理想要跳转的原生界面逻辑  view.getUrl()当前页面地址
   }
}

 

这个里面写跳转原生界面的逻辑  并且记录当前webview 加载的url  ,  存本地或者做缓存

然后再在activity的onResume方法里面加载这个url

这样从原生界面返回webview  还会显示跳转之前的页面。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值