2012-02-07 63 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

相关问题