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.