Iphone 永久更改用户代理

Iphone 永久更改用户代理,iphone,objective-c,http,user-agent,Iphone,Objective C,Http,User Agent,我已经能够通过使用更改用户代理 - (BOOL)webView:(UIWebView *)webView2 shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSMutableURLRequest *req = (NSMutableURLRequest *)request; NSString *versionString = [[

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

- (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
    }
}

但是当我在设备上访问这个网站时,我的用户代理没有改变。是否有办法永久更改用户代理?

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

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

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


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

在玩了很长时间之后,我发现你可以。不确定这是否有助于您构建应用程序。

谢谢。我仍然要更改我应用程序中的一个,但我认为用户代理现在是空的。我不知道这是为什么。代码是一样的。这是不是有什么我可以不小心更改以使用户代理(空)的?