如何在iOS 4.x上获取/设置用户代理?
问题描述:
我有一个webview应用程序工具,它基本上由webview和工具栏上的两个按钮组成。一个按钮可查看页面的来源,另一个按钮可查看/更改当前的用户代理。如何在iOS 4.x上获取/设置用户代理?
我有两个函数在iOS 5上工作(查看源代码,并更改用户代理),但我似乎无法抓住iOS 4.x中的用户代理。
我现在使用如下:
userAgentViewController.UAText = [self.webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
这个工程在iOS5中,但在iOS的4.x版,它不返回任何东西。有没有办法在iOS 4.x中实现相同的功能?
谢谢!
答
要获得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];
,这就是它!
答
试试这个在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
谢谢!!这很简单! – kurisukun 2012-02-08 00:07:23