2011-10-18 4 views
7

Sto tentando di caricare un UIWebView con l'URL di autorizzazione OAuth di Facebook e sto utilizzando il seguente codice. Quando il mio UIWebView carica con la pagina di accesso di Facebook, inserisco le mie credenziali, quindi premo il pulsante "Accedi". Quando mi ha colpito il pulsante sto ottenendo il seguente errore:Nuovo errore in iOS 5: WebKit ha scartato un'eccezione non rilevata

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

Questo stesso codice funziona bene con iOS 4.3 e versioni precedenti, ma non funziona in iOS 5.0. Non capisco il problema, qualcuno può aiutarmi per favore?

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

risposta

22

Si sta utilizzando il codice Ray Wenderlich? (FBFunLoginDialog) .. Ho trovato che questo lo risolve:

-(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

Grazie mille Karl Goodhew! –

+0

Grazie mi ha aiutato anche ... :) applausi ... :) :) –

+0

ora sto ottenendo questo errore cosa fare per favore aiuto AVVISO DI SICUREZZA: "Si prega di trattare l'URL di cui sopra come si farebbe la tua password e non condividerla con chiunque ho cercato tanto in rete ma niente funziona, alcuni dicono di cambiare URL da http a https e alcuni dicono nell'account di Facebook di disabilitare la navigazione sicura ma queste cose non funzionano. –

0

Ho lo stesso problema. Provo a presentare il controller della vista subito dopo aver chiuso.

[self dismissModalViewControllerAnimated:YES]; 

Quando provo a farlo senza animazione funziona perfettamente. use dismissViewControllerAnimated: completion:

Problemi correlati