2011-07-26 49 views
3

我已经能够通过使用更改用户代理好

- (BOOL)webView:(UIWebView *)webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 

NSMutableURLRequest *req = (NSMutableURLRequest *)request; 
NSString *versionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey]; 

NSLog(@"user agent = %@", [req valueForHTTPHeaderField: @"User-Agent"]); 

if ([req valueForHTTPHeaderField:@"User-Agent"] != NULL) { 

    [req setValue:[NSString stringWithFormat:@"%@ %@", versionString, [req valueForHTTPHeaderField:@"User-Agent"]] forHTTPHeaderField:@"User-Agent"]; 
    NSLog(@"user agent = %@", [req valueForHTTPHeaderField: @"User-Agent"]); 

    return YES 
    } 
} 

改变用户代理但是,当我去这个网站的设备http://whatsmyuseragent.com/我的用户代理并没有改变。有没有办法改变用户代理的好处?

回答

0

您不能更改由Safari显示的用户代理,而只能使用您自己的应用程序使用的用户代理。

+0

谢谢黄昏。我仍然会改变我的应用程序,但我的用户代理现在(空)。我不确定这是为什么。代码是一样的。这有什么我可以意外地改变,使用户代理(空)? –

0

我注意到模拟器在有时测试时报告为零。我不确定这是故意还是故意的。

0

做“手册” NSURLRequest那时你可以改变用户代理的价值,但我不认为你可以在UIWebView更改。

原因是,传递到上面显示的方法中的值不可变 - 您无法更改它们,并期望应用程序的其余部分将“接受”修改。老实说,我很惊讶将NSURLRequest转换为其可变的变体,然后改变它并不会导致你的应用程序崩溃。