不同的URL,WebView加载出相同的页面

前言:回头理理旧项目,偶然发现的老坑.

现象:不同的URL,webView加载出相同的页面;

代码:

伪代码:
webView.loadUrl(openUrl);
initView();

public void initView(){
    webView.setWebViewClient(client);
    webView.setWebChromeClient(chromeClient);
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);

    //提供当前浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识
    String ua = settings.getUserAgentString();
    settings.setUserAgentString(ua+"; WYK /"+GlobalUtils
                .getAPPVersionName(Global.getContext()));
}

查看log打印的日志:

这里写图片描述

从log可以看出,WebView每次加载新的URL时,明显都会加载两次,且第二次加载的URL都是WebView一开始加载的URL,而第一次加载的就是新的URL,所以导致每次加载后看到的都是同样的页面。

原因:由于代码中settings.setUserAgentString方法在loadUrl方法之后调用的关系,为什么呢?看下面源码截图

源码:

这里写图片描述

翻译:设置WebVIEW的用户代理字符串。如果字符串为空或空,系统默认值将被使用。
请注意,从SDK19(Android5.0)版本开始,在加载网页时更改用户代理会导致WebVIEW再次启动加载。

解决:在loadUrl方法之前设置UserAgent。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值