初探android中webview的UA(User-Agent) 对于很多初步接触webview的朋友来说,不管你是自己代码中写webview,还是接入第三方sdk,经常会在需求中看到这么一句话: 如APP使用内置浏览器需在 webview中设置独立 UA 标识,欧博并告知平台联系人 那么,到底什么是UA?UA在代码里又是怎么设置的? 1.什么是UA? UA的全称是User-Agent,中文名为用户代理,是Http请求协议中请求头的一部分,这里的请求包括GET请求和POST请求。 先说结论,绝大多数网页浏览器使用的User-Agent值如下: Mozilla/[version]([system and browser information])[platform]([platform details])[extensions]。 例如,皇冠iPad上的Safari使用的UA如下: Mozilla/5.0(iPad; U; CPU OS 3_2_1 like Mac OS X; en-us)AppleWebKit/531.21.10(KHTML, like Gecko)Mobile/7B405 这个字符串的组成如下: 字符串 说明Mozilla/5.0 伪装成Mozilla排版引擎的浏览器以达到兼容 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) 浏览器所运行的系统的详细信息 AppleWebKit/531.21.10 浏览器所使用的平台 (KHTML, like Gecko) 浏览器平台的细节 Mobile/7B405 被浏览器用于指示特定的直接由浏览器提供或者通过第三方提供的可用的增强功能。这方面的一个实例是Microsoft Live Meeting(它注册了一个扩展以使Live Meeting服务知道该软件是否已经安装上,这意味着它可以为加入会议提供一个简化的体验。) 2.UA有什么作用? 1) 在手机端/pc端,可以通过UA来判断不同的设备,从而可以显示不同的排版,DG游戏进而给用户提供更好的体验 2) 通过UA,欧博注册进行信息统计,主要是用于渠道统计 例子1: Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13 因为这个UA字符串中没有mobile,猜测可能是平板,验证发现是摩托罗拉的XOOM平板。 例子2: Mozilla/5.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 这个UA包含了mobile和android,所以这台应该是Nexus One手机。 做个总结,大家可以参照下图来对应查找判断android设备:
android_UA.jpeg 4.android中怎么获取和设置UA?1. 获取UA 2. 自定义设置UA 自定义内容可以一般填入客户端或appversion , 2)替换原来的UA String ua = mWebView.getSettings().getUserAgentString();//原来获取的UA mWebView.getSettings().setUserAgentString(ua.replace("Android","HFWSH_USER Android"));这样写,可以将原来的ua替换为新的ua。 参考文章: (责任编辑:) |