iphone - Cómo obtener UIWebView User-Agent
ios4 (2)
Acabo de encontrar un problema similar y necesitaba que el agente de usuario enviado por un NSURLConnection coincida con el enviado por un UIWebView. Mi solución fue crear un UIWebView y luego usar javascript para extraer el agente de usuario.
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* secretAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
Tengo un problema al trabajar con un servidor remoto. Mi aplicación realiza una solicitud a un servidor utilizando el [NSData initWithContentsOfURL:]
y, como respuesta, obtengo la URL del sitio web que abro en UIWebView
.
El problema es que esas solicitudes tienen diferentes User-Agent y el servidor no puede servirme correctamente porque espera que envíe todas las solicitudes con el mismo User-Agent. Sé cómo cambiar User-Agent (por ejemplo, Change User Agent en UIWebView (iPhone SDK) ), pero lo que realmente quiero es que de alguna manera consiga User-Agent de UIWebView y lo establezca en [NSData initWithContentsOfURL:] para evitar problemas con el servidor lado
Como @nate mencionado above , puede invocar Javascript en una vista web:
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
NSString* secretAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
Pero invocar un nuevo Javascript es un poco intrincado y crear un webView de tamaño cero es gratuito, ya que ya tienes un webView con el que estás tratando.
Alternativamente, puede simplemente usar métodos nativos en su vista webView
dada:
NSString* ua = [webView.request valueForHTTPHeaderField:@"User-Agent"];
NSLog(@"User-Agent = %@", ua);