iOS獲取User-Agent(UA)資訊的方法
阿新 • • 發佈:2019-02-18
轉自:http://mobile.51cto.com/iphone-407791.htm
User-Agent(簡稱UA)是HTTP請求頭部用來標識客戶端資訊的字串, 包括作業系統, 瀏覽器等資訊. 為了建立手機客戶端的資訊資料庫, 需要從手機的http請求中取到這一字串.
iPhone中取到UA資訊的方法如下:
1.利用瀏覽器控制元件UIWebView建立一個http請求
2.在請求建立的期間, 建立一個新的事件迴圈用來判斷UA資訊是否已經建立
3.在傳送http請求之前截獲UA資訊, 並且取消這一http請求
獲取iPhone UA的程式碼如下:
-
UIWebView *_webView;
- NSString *userAgent;
- - (void)createHttpRequest {
- _webView = [[UIWebView alloc] init];
- _webView.delegate = self;
- [_webView loadRequest:[NSURLRequest requestWithURL:
- [NSURL URLWithString:@"http://www.eoe.cn"]]];
- NSLog(@"%@", [self userAgentString]);
- [_webView release];
-
}
- -(NSString *)userAgentString
- {
- while (self.userAgent == nil)
- {
- NSLog(@"%@", @"in while");
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
- }
- return self.userAgent;
- }
-
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
- {
- if (webView == _webView) {
- self.userAgent = [request valueForHTTPHeaderField:@"User-Agent"];
- // Return no, we don't care about executing an actual request.
- return NO;
- }
- return YES;
- }
- - (void)dealloc {
- [userAgent release];
- [super dealloc];
- }