2011-10-18 11 views
7

Estoy intentando cargar un UIWebView con la URL de autorización de Facebook OAuth y estoy usando el siguiente código. Cuando mi UIWebView carga con la página de inicio de sesión de Facebook, ingreso mis credenciales, luego presiono el botón "Iniciar sesión". Cuando pulso el botón que estoy recibiendo el siguiente error:Nuevo error en iOS 5: WebKit descartó una excepción no detectada

WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener:delegate: Application tried to present modally an active controller .

Este mismo código funciona bien con iOS 4.3 y versiones anteriores, pero no funciona en iOS 5.0. No entiendo el problema, ¿alguien puede ayudarme?

NSString *redirectUrlString = @"http://www.facebook.com/connect/login_success.html"; 
NSString *authFormatString = @"https://graph.facebook.com/oauth/authorize?client_id=%@&redirect_uri=%@&scope=%@&type=user_agent&display=touch"; 

NSString *urlString = [NSString stringWithFormat:authFormatString, _apiKey, redirectUrlString, _requestedPermissions]; 
NSURL *url = [NSURL URLWithString:urlString]; 

NSLog(@"NSURL: %@", urlString); 

NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
[_webView loadRequest:request]; 

Respuesta

22

¿Está utilizando el código de Ray Wenderlich? (FBFunLoginDialog) ... Encontré que esto lo soluciona:

-(void)checkLoginRequired:(NSString *)urlString { 
    NSLog(@"Url: %@",urlString); 
    if ([urlString rangeOfString:@"login.php"].location != NSNotFound && [urlString rangeOfString:@"refid"].location == NSNotFound) { 
      [_delegate displayRequired]; 
    } else if ([urlString rangeOfString:@"user_denied"].location != NSNotFound) { 
     [_delegate closeTapped]; 
    } 
} 
+0

Muchas gracias Karl Goodhew! –

+0

Gracias me ayudó también ... :) aplausos ... :) :) –

+0

ahora estoy recibiendo este error qué hacer, por favor ayuda ADVERTENCIA DE SEGURIDAD: "Por favor, trate la URL anterior como lo haría con su contraseña y no la comparta con cualquier persona. Busqué mucho en la red, pero nada funciona, algunos dicen que cambian la URL de http a https y algunos dicen que en la cuenta de Facebook se desactiva la navegación segura, pero estas cosas no funcionan. –

0

Tengo el mismo problema. Intento presentar el controlador de vista justo después de despedirlo.

[self dismissModalViewControllerAnimated:YES]; 

Cuando intento hacerlo sin animación, funciona perfectamente. use dismissViewControllerAnimated: finalización:

Cuestiones relacionadas