iOS 5中的新错误:WebKit丢弃了未捕获的异常

AAV*_*AAV 7 cocoa-touch objective-c uiwebview ios uiwebviewdelegate

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

WebKit在webView中丢弃了一个未捕获的异常:decisionPolicyForNavigationAction:request:frame:decisionListener:delegate:Application试图以模态方式呈现一个活动的控制器.

这个相同的代码适用于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];
Run Code Online (Sandbox Code Playgroud)

小智 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];
    }
}
Run Code Online (Sandbox Code Playgroud)