UserAgent是什么硼瓣?
每一個(gè)人網(wǎng)上沖浪的時(shí)候都有一個(gè)user agent究飞,它是一款連接你、用戶和互聯(lián)網(wǎng)的橋梁的軟件堂鲤。其實(shí),簡單的認(rèn)識媒峡,瀏覽器可以說就是一個(gè)簡單的user agent瘟栖。
UserAgent內(nèi)容有哪些呢?
當(dāng)我們查看一個(gè)請求的請求頭部的時(shí)候谅阿,會看到UserAgent字段半哟,內(nèi)容正如下面類似:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
- 用戶代理應(yīng)用程序是Mozilla版本5.0或與之兼容的一種軟件。
- 操作系統(tǒng)是OS X版本10.2.2(并且在Mac上運(yùn)行)签餐。
- 客戶端是Chrome版本51.0.2704.84寓涨。
- 客戶端基于Safari版本537.36。
- 負(fù)責(zé)在此設(shè)備上顯示內(nèi)容的引擎是AppleWebKit版本537.36(和KHTML氯檐,一個(gè)開源布局引擎)戒良。
UserAgent可以做什么?
- 檢查瀏覽器或設(shè)備的功能冠摄,并根據(jù)結(jié)果加載不同的CSS;
- 將自定義JavaScript與另一個(gè)設(shè)備相比較;
- 與桌面計(jì)算機(jī)相比糯崎,向手機(jī)發(fā)送完全不同的頁面布局;
- 根據(jù)用戶代理語言偏好自動(dòng)發(fā)送文檔的正確翻譯;
- 根據(jù)用戶的設(shè)備類型或其他因素向特定用戶推送特惠優(yōu)惠;
- 收集有關(guān)訪問者的統(tǒng)計(jì)信息,以告知我們的網(wǎng)頁設(shè)計(jì)和內(nèi)容制作流程河泳,或者僅僅衡量誰訪問我們的網(wǎng)站沃呢,以及來自哪些引薦來源。
iOS 客戶端如何設(shè)置app的UserAgent拆挥?
// 1. 創(chuàng)建一個(gè)空的webView
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectZero];
// 2. 取出webView的userAgent
NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
// 3. 給userAgent中添加自己需要的內(nèi)容
userAgent = [userAgent stringByAppendingString:@" [Hello World] "];
// 4. 創(chuàng)建一個(gè)UserAgent字典
NSDictionary *userAgentDict = @{@"UserAgent":userAgent};
// 5. 將字典內(nèi)容注冊到NSUserDefaults中
[[NSUserDefaults standardUserDefaults] registerDefaults:userAgentDict];
** 重點(diǎn)說明: **在第3步中添加的內(nèi)容不要有中文薄霜,因?yàn)橹形牡脑挘捎诰幋a的問題會被舍棄纸兔,并且中文之后的內(nèi)容也會消失惰瓜,這樣可能會導(dǎo)致,你以為內(nèi)容已經(jīng)添加到了(NSUserDefaults對中UserAgent對應(yīng)的key里面有)請求頭部userAgent字段中食拜,但是實(shí)際web請求的時(shí)候鸵熟,那些內(nèi)容是沒有的。
** 其他解釋: **如果想詳細(xì)了解navigator.userAgent的話负甸,請看這里http://www.w3school.com.cn/jsref/prop_nav_useragent.asp流强;關(guān)于第5步中registerDefaults這個(gè)方法我想說痹届,執(zhí)行這個(gè)方法,只會把參數(shù)的內(nèi)容存入到內(nèi)存中打月,不會寫到硬盤的plist文件中队腐,而且這個(gè)方法是可以多次調(diào)用。