iphone ios4 uiwebview user-agent

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