Cambiar el User Agent de una UIWebView en iOS

Para cambiar el user agent de una UIWebView en iOS tan solo tenemos que usar el siguiente código:

NSDictionary *dictionario = [[NSDictionary alloc] initWithObjectsAndKeys:@”Mi user agent personalizado”, @”UserAgent”, nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionario];
Se puede usar por ejemplo para que las páginas no nos carguen la versión móvil de una web, poniendo por ejemplo el User Agent de firefox o Chrome.
También cambiaría el User Agent para phonegap, tanto para la CordovaWebView como para el InAppBrowser.
Para saber el User Agent de una UIWebView podemos usar este código:
UIWebView* webViewTemporal = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* userAgent = [webViewTemporal stringByEvaluatingJavaScriptFromString:@”navigator.userAgent”];
Esto nos puede ser útil para poder modificar el User Agent original de la UIWebView y personalizarlo como acabamos de ver. Ejemplo:
UIWebView* webViewTemporal = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* userAgent = [webViewTemporal stringByEvaluatingJavaScriptFromString:@”navigator.userAgent”];
NSString * miUserAgentPersonal = [NSString stringWithFormat:@”Mi app %@”,userAgent];
NSDictionary *dictionario = [[NSDictionary alloc] initWithObjectsAndKeys:miUserAgentPersonal, @”UserAgent”, nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionario];
De esta forma mantenemos el User Agent original pero con una pequeña modificación para detectar que se accede desde nuestra aplicación.