iOS9 UIWebView拒绝使用自定义User-Agent字符串

时间:2016-04-11 14:41:40

标签: objective-c uiwebview ios9 user-agent nsmutableurlrequest

我正在尝试在我的UIWebView上设置自定义用户代理,但遇到了似乎拒绝这样做的问题 - 用户代理字符串保持不变。

如何在iOS9中正确更改UIWebView的用户代理字符串?

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];   
 userAgent = @"Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36";
    [defaults setValue:userAgent forKey:@"UserAgent"];
    [defaults setValue:userAgent forKey:@"User-Agent"];

我也尝试过:

 NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:theURL];
    [request addValue:@"Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36" forHTTPHeaderField:@"User-Agent"];
//
    [self.webView loadRequest:request];

在运行时

//Web view user-agent: Mozilla/5.0 (iPad; CPU OS 9_3_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E238

1 个答案:

答案 0 :(得分:1)

您需要的是:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *userAgent = @"Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36";
[defaults registerDefaults:@{ @"UserAgent" : userAgent }];

关键是您使用registerDefaults:代替setValue:forKey: