2011-08-16 14 views
6

Quiero abrir una URL que necesita contraseña y nombre de usuario en una UIWebview. Como abrir mi Router Wifi local (192.168.1.1). Pero cuando intento seguir el código, no aparece una ventana emergente como Safari que requiera contraseña y nombre de usuario.cómo abrir url necesita nombre de usuario y contraseña con uiwebview?

NSURL *url = [NSURL URLWithString:@"http://192.168.1.1"]; 
NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; 
[self._webView loadRequest:httpReq]; 

Desde que alguien me dijo que usara NSURLConnectionDelegate, lo sé, pero yo donot sabe cómo mostrar la página autorizado a la UIWebView.

+0

Trate de añadir el campo de autorización, como se describe aquí: http://stackoverflow.com/questions/1973325/nsurlconnection-and-basic-http-authentication – SVD

Respuesta

7

Esto ayudará

NSURL *url = [NSURL URLWithString:@"http://username:[email protected]"]; NSURLRequest *httpReq = [NSURLRequest requestWithURL:url]; [self._webView loadRequest:httpReq];

3

Debe implementar la conexión: didReceiveAuthenticationChallenge: en NSURLConnectionDelegate. Para obtener más información, lea el capítulo Authentication Challenges de Apple "Guía de programación del sistema de carga de URL".

+1

Pero cómo usar un UIWebView para cargar la solicitud? – ZYiOS

1

UIWebView no proporciona ningún mecanismo para identificar la respuesta. Entonces, se explica una solución en el proyecto github UIWebViewHttpStatusCodeHandling que identifica el código de estado de la respuesta (debe ser 404 en su caso).

Sin embargo, el principal inconveniente es que para cada solicitud necesita usar NSURLConnection y cargar la solicitud nuevamente. Pero en este caso, puede cancelar la NSURLConnection también.

La otra solución debería (podría) ser el uso de Java-Script. Busque la secuencia de comandos Java, que proporciona el código de estado de la respuesta.

Cuestiones relacionadas