1. 程式人生 > >iOS獲取User-Agent(UA)資訊的方法

iOS獲取User-Agent(UA)資訊的方法

轉自: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的程式碼如下:

  1. UIWebView *_webView; 
  2. NSString *userAgent; 
  3. - (void)createHttpRequest { 
  4.     _webView = [[UIWebView alloc] init]; 
  5.     _webView.delegate = self; 
  6.     [_webView loadRequest:[NSURLRequest requestWithURL: 
  7.     [NSURL URLWithString:@"http://www.eoe.cn"]]]; 
  8.     NSLog(@"%@", [self userAgentString]); 
  9.     [_webView release]; 
  10. -(NSString *)userAgentString 
  11.     while (self.userAgent == nil)  
  12.     { 
  13.         NSLog(@"%@", @"in while"); 
  14.         [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; 
  15.         } 
  16.     return self.userAgent; 
  17. -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
  18.     if (webView == _webView) { 
  19.     self.userAgent = [request valueForHTTPHeaderField:@"User-Agent"]; 
  20.     // Return no, we don't care about executing an actual request.
  21.     return NO; 
  22.     return YES; 
  23. - (void)dealloc { 
  24. [userAgent release]; 
  25.     [super dealloc];