2012-02-07 97 views
1

我有一個webview應用程序工具,它​​基本上由webview和工具欄上的兩個按鈕組成。一個按鈕可查看頁面的來源,另一個按鈕可查看/更改當前的用戶代理。如何在iOS 4.x上獲取/設置用戶代理?

我有兩個函數在iOS 5上工作(查看源代碼,並更改用戶代理),但我似乎無法抓住iOS 4.x中的用戶代理。

我現在使用如下:

userAgentViewController.UAText = [self.webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"]; 

這個工程在iOS5中,但在iOS的4.x版,它不返回任何東西。有沒有辦法在iOS 4.x中實現相同的功能?

謝謝!

回答

3

要獲得useragent,請檢查您的響應的NSURLRequest中的HTTP標頭。 您可以在webViewDidFinishLoad委託方法中檢索這一個。

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSLog(@"%@", [[webView request] valueForHTTPHeaderField: @"User-Agent"]); 
} 

設置它,你必須定製的NSMutableURLRequest,並給它的網頁視圖

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:@"yourwebsite.com"]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:USERAGENT_STRING forHTTPHeaderField: @"User-Agent"]; 
[webView loadRequest:request]; 
[request release]; 

,這就是它!

+0

謝謝!!這很簡單! – kurisukun 2012-02-08 00:07:23

0

試試這個在AppDelegate.m

+ (void)initialize 

{ 

    // Set user agent (the only problem is that we can’t modify the User-Agent later in the program) 

    // iOS 5.1 

    NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@」Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3」, @」UserAgent」, nil]; 


    [[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary]; 

} 
+0

同樣在應用程序委託中,我可以獲取當前用戶代理嗎? – Satyam 2013-09-05 12:21:47

相關問題