改变用户代理

时间:2011-07-26 20:20:37

标签: iphone objective-c http user-agent

我可以使用

更改用户代理
- (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/上访问此网站时,我的用户代理没有改变。有没有办法改变用户代理?

4 个答案:

答案 0 :(得分:1)

在玩了很长时间之后,我发现你可以change the User Agent without rooting。如果您正在构建应用程序,请确定这是否有帮助。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我注意到模拟器有时会测试nil。我不确定这是故意的还是故意的。

答案 3 :(得分:0)

您可以在执行“手动”NSURLRequest时更改用户代理的值,但我认为您无法在UIWebView中更改它们。

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

相关问题