初探android中webview的UA(User-Agent)

??對于很多初步接觸webview的朋友來說,不管你是自己代碼中寫webview,還是接入第三方sdk,經(jīng)常會在需求中看到這么一句話:

如APP使用內(nèi)置瀏覽器需在 webview中設(shè)置獨立 UA 標(biāo)識痪寻,并告知平臺聯(lián)系人

??那么,到底什么是UA?UA在代碼里又是怎么設(shè)置的?

1.什么是UA?

??UA的全稱是User-Agent,中文名為用戶代理填物,是Http請求協(xié)議中請求頭的一部分,這里的請求包括GET請求和POST請求撇叁。
??下面我們來看,UA到底是由什么組成的?他的組成部分是什么?

??先說結(jié)論,絕大多數(shù)網(wǎng)頁瀏覽器使用的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排版引擎的瀏覽器以達(dá)到兼容
(iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) 瀏覽器所運行的系統(tǒng)的詳細(xì)信息
AppleWebKit/531.21.10 瀏覽器所使用的平臺
(KHTML, like Gecko) 瀏覽器平臺的細(xì)節(jié)
Mobile/7B405 被瀏覽器用于指示特定的直接由瀏覽器提供或者通過第三方提供的可用的增強(qiáng)功能沟蔑。這方面的一個實例是Microsoft Live Meeting(它注冊了一個擴(kuò)展以使Live Meeting服務(wù)知道該軟件是否已經(jīng)安裝上待秃,這意味著它可以為加入會議提供一個簡化的體驗嘹吨。)

2.UA有什么作用遗遵?

1) 在手機(jī)端/pc端,可以通過UA來判斷不同的設(shè)備,從而可以顯示不同的排版萍恕,進(jìn)而給用戶提供更好的體驗
??例如:用手機(jī)訪問百度和pc端訪問的頁面排版是不一樣的,這些就是百度根據(jù)訪問者的UA來判斷的瓮恭。

2) 通過UA雄坪,進(jìn)行信息統(tǒng)計,主要是用于渠道統(tǒng)計
??例如:在之前的工作中碰到過類似情況厘熟,在app中接入廣告的sdk屯蹦,當(dāng)用戶點擊廣告圖片時就需要通過webview進(jìn)行詳細(xì)廣告頁面的跳轉(zhuǎn),這時候就需要在webview中進(jìn)行UA的自定義設(shè)置了,這樣后臺廣告平臺的人員就可以通過UA判斷是哪個客戶端(安卓/蘋果),哪個瀏覽器的客戶,進(jìn)而進(jìn)行客戶端的統(tǒng)計。

3.android中的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绳姨,猜測可能是平板,驗證發(fā)現(xiàn)是摩托羅拉的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,所以這臺應(yīng)該是Nexus One手機(jī)。

??做個總結(jié),大家可以參照下圖來對應(yīng)查找判斷android設(shè)備:


android_UA.jpeg

4.android中怎么獲取和設(shè)置UA?

1. 獲取UA
??獲取UA的方式非常簡單,只要在webview控件的settings上獲取即可:

  WebSettings settings = mWebView.getSettings();
  String userAgentString = settings.getUserAgentString();

2. 自定義設(shè)置UA
設(shè)置UA一般有兩種方法:
1)尾部添加字段

  String ua = mWebView.getSettings().getUserAgentString();//原來獲取的UA
  mWebView.getSettings().setUserAgentString(ua+ "自定義內(nèi)容");

??自定義內(nèi)容可以一般填入客戶端或appversion ,
??例如 +" \ platform: android; \appversion: 2.1.3 ;"

2)替換原來的UA

 String ua = mWebView.getSettings().getUserAgentString();//原來獲取的UA
 mWebView.getSettings().setUserAgentString(ua.replace("Android","HFWSH_USER Android"));

??這樣寫,可以將原來的ua替換為新的ua飘庄。


參考文章:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脑蠕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谴仙,老刑警劉巖迂求,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異晃跺,居然都是意外死亡揩局,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門掀虎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凌盯,“玉大人,你說我怎么就攤上這事烹玉〕墼酰” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵二打,是天一觀的道長县忌。 經(jīng)常有香客問我,道長址儒,這世上最難降的妖魔是什么芹枷? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮莲趣,結(jié)果婚禮上鸳慈,老公的妹妹穿的比我還像新娘。我一直安慰自己喧伞,他們只是感情好走芋,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著潘鲫,像睡著了一般翁逞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上溉仑,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天挖函,我揣著相機(jī)與錄音,去河邊找鬼浊竟。 笑死怨喘,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的振定。 我是一名探鬼主播必怜,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼后频!你這毒婦竟也來了梳庆?” 一聲冷哼從身側(cè)響起暖途,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎膏执,沒想到半個月后驻售,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡更米,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年芋浮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壳快。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡纸巷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出眶痰,到底是詐尸還是另有隱情瘤旨,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布竖伯,位于F島的核電站存哲,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏七婴。R本人自食惡果不足惜祟偷,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望打厘。 院中可真熱鬧修肠,春花似錦、人聲如沸户盯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莽鸭。三九已至吗伤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間硫眨,已是汗流浹背足淆。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留礁阁,地道東北人巧号。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像氮兵,于是被迫代替她去往敵國和親裂逐。 傳聞我的和親對象是個殘疾皇子歹鱼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一、基礎(chǔ)知識篇:Http Header之User-AgentUser Agent中文名為用戶代理南片,是Http協(xié)議中...
    iPhone閱讀 15,643評論 0 13
  • 一掺涛、基礎(chǔ)知識篇:Http Header之User-AgentUser Agent中文名為用戶代理,是Http協(xié)議中...
    大牧莫邪閱讀 63,058評論 3 21
  • 瀏覽器User-Agent的詳細(xì)信息 PC端: safari5.1–MAC User-Agent:Mozilla/...
    b2e16cc43137閱讀 699評論 0 0
  • 在開發(fā)時我們可能遇到這樣一個問題:如何使WebView打開網(wǎng)頁時以平板或者電腦模式打開疼进,而不是以手機(jī)模式薪缆。其實We...
    coder小黃人閱讀 5,902評論 0 2
  • 所有的黑暗都會天明 所有的不快都會過去 絕望不會是遙遙無期 頭破血流的故事 無語凝成詩 累了就睡大覺 醒來就加油搞...
    復(fù)興火炬書友會閱讀 173評論 0 0