WebView版本判断

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebView版本判断相关的知识,希望对你有一定的参考价值。

参考技术A

通过user-agent来区分webview版本
例:
Mozilla/5.0 (Linux; U; android 4.1.1; zh-cn; MI 2S Build/JRO03L)
AppleWebKit/534.30 (Khtml, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; H30-C00 Build/HuaweiH30-C00) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; Android 6.0.1; SM-G9350 Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/49.0.2623.105 Mobile Safari/537.36

Mozilla/5.0 (Linux; Android 5.1.1; vivo V3Max A Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 ** Chrome/39.0.0.0 ** Mobile Safari/537.36

Mozilla/5.0 (Linux; Android 5.0; R7Plus Build/LRX21M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 ** Chrome/42.0.2311.138 ** Mobile Safari/537.36

4.4以下都是使用webkit内核,大部分版本都没有变化,版本对应如下:

4.4及以上版本使用的是chrome内核,变化较频繁,可以从user-agent里拿到

WebView如何判断页面真正成功加载?求大神帮助

因为项目需求,可能需要通过webview加载页面的真实状态来设定标记. 然后决定一些操作. 但是,WebViewClient中的onPageFinish()方法 还有WebChromeClient类中的获取progress进度的方法都存在问题(或者对我自己来说是有问题的). 1. 在无网络状态下, onPageFinish依然可以被调用. 是因为只是界面加载结束, 而不是界面加载完成么? 2. WebChromeClient的获取进度方法,也同样在无网络下达到100的最大值. 所以, 希望找到有效的,可以监听页面是否真正加载完毕,可以展示的方法. 望大家给及帮助~

参考技术A 你说的三个方法我都有尝试, 不过现在在用onReceivedError, 不过这个方法是页面出错时才调用. 我现在是需要两种标记, 就是说需要改变标记的状态, started或者finished方法是在onReceivedError之前执行, 但是如果onReceivedError执行了, 上面两个方法同样会再次执行. 这样标记就无法正确判断了. 所以想找一个在网页真正加载完毕,可以正常展示时调用的方法. 还有,如果想提高用户体验,添加一个进度条, 或者提示框, 上述的started和finished方法同样是不能使用的. 因为,它们两个不管如何都会被调用的. 查看原帖>>本回答被提问者采纳

以上是关于WebView版本判断的主要内容,如果未能解决你的问题,请参考以下文章

android 升级webview版本,包括6.0系统

android 高版本允许系统应用调用webview

webview 判断加载的是哪个页面

如何判断webview是否滑到底部

webview core is android webview是啥意思

js如何判断当前运行环境是ios webview还是android webview