7

我正在尝试UIWebView使用 Facebook OAuth 授权 URL 加载一个,并且我正在使用以下代码。当我UIWebView加载 Facebook 登录页面时,我输入我的凭据,然后按“登录”按钮。当我按下按钮时,我收到以下错误:

WebKit 在 webView:decidePolicyForNavigationAction:request:frame:decisionListener:delegate 中丢弃了一个未捕获的异常:应用程序试图以模态方式呈现一个活动控制器。

相同的代码适用于 iOS 4.3 和以前的版本,但不适用于 iOS 5.0。我不明白这个问题,有人可以帮我吗?

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

2 回答 2

22

您使用的是 Ray Wenderlich 代码吗?(FBFunLoginDialog)..我发现这解决了它:

-(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];
    }
}
于 2011-10-26T13:23:48.893 回答
0

我也有同样的问题。我尝试在解雇后展示视图控制器。

[self dismissModalViewControllerAnimated:YES];

当我尝试在没有动画的情况下进行操作时,它可以完美运行。使用dismissViewControllerAnimated:完成:

于 2011-12-06T04:00:10.337 回答