0

我正在使用这些教程在 iphone 中实现 facebook graph api http://www.raywenderlich.com/1488/how-to-use-facebooks-new-graph-api-from-your-iphone-app 但是当我点击 facebook 登录像这样在 nslog 文件上出现错误

2013-01-09 18:50:54.509 FBFun[3279:11303] *** WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: <NSInvalidArgumentException> Application tried to present modally an active controller <ViewController: 0x75446a0>.

我尝试通过此链接上发布的答案来解决问题
iOS 5 中的新错误:WebKit 丢弃了未捕获的异常 这是链接上的答案

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

但我没有成功,有人对这篇文章有答案,请与我分享

4

2 回答 2

1

离开那个教程:

使用这个,对您来说很容易,并且是分步骤的:

从这里下载 Facebook 新 SDK,您不需要像之前在 ray 教程中所做的那样单独调用:

https://developers.facebook.com/ios/

初学者从 facebook 的 SDK 使用和访问 Graph API/FQL 等的最简单的教程:

https://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/

希望能帮助到你。

于 2013-01-09T18:47:42.360 回答
0

嘿,我在使用 RayWenderLich 教程实现 Graph Api 的代码中遇到了相同的问题, 但经过数小时的研究和一些代码调试后解决了这个问题。

为了方便起见,我更改了代码。

  • (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {

    NSString *urlString = request.URL.absoluteString;

    [self checkForAccessToken:urlString];

    如果(self.isViewLoaded && self.view.window){

       // viewController is visible
    
       return TRUE;
    

    }

    [self checkLoginRequired:urlString];

    返回真;

}

-(void)checkLoginRequired:(NSString *)urlString {

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

    if ([urlString rangeOfString:@"login.php"].location != NSNotFound && [urlString rangeOfString:@"refid"].location == NSNotFound) {
        NSLog(@"Login Required");
        [_delegate displayRequired];

    } else if ([urlString rangeOfString:@"login_success"].location != NSNotFound) {
        NSLog(@"login_success");

       //any thing you want to do after log in success.
    }
于 2013-03-22T15:15:34.820 回答