2

I'm trying to set custom user agent on my UIWebView, but am running into an issue where it seems to refuse to do so - the user agent string stays the same.

How do I properly change user agent string for UIWebView in iOS9 ?

 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"];

I also tried:

 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];

At runtime

//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
Alex Stone
  • 46,408
  • 55
  • 231
  • 407
  • 1
    And your question is duplicate of http://stackoverflow.com/questions/26219997/how-can-i-set-the-user-agent-header-of-a-uiwebview-in-swift – xi.lin Apr 11 '16 at 15:47

1 Answers1

1

What you need is as follow:

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 }];

The key thing is that you use registerDefaults: instead of setValue:forKey:

Alex Stone
  • 46,408
  • 55
  • 231
  • 407
xi.lin
  • 3,326
  • 2
  • 31
  • 57