0

在我的应用程序中,我使用 FBWebDialogs 向 facebook 朋友发送应用程序请求,我成功地做到了。我的问题是我无法处理 FBWebDialogs 弹出窗口按钮。在下面的代码中,我可以检测到 X 按钮和取消按钮,但是当我选择发送按钮时,它仍然会给出日志NSLog(@"User canceled request.");,我正在使用 facebook 文档中给出的代码。我的错误是什么?

[FBWebDialogs
         presentRequestsDialogModallyWithSession:nil
         message:@"Learn how to make your iOS apps social."
         title:nil
         parameters:params
         handler:^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
             if (error) {
                 // Error launching the dialog or sending the request.
                 NSLog(@"Error sending request.");
             } else {
                 if (result == FBWebDialogResultDialogNotCompleted) {
                     // User clicked the "x" icon
                     NSLog(@"User canceled request.");
                 } else {
                     // Handle the send request callback
                     NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
                     if (![urlParams valueForKey:@"request"]) {
                         // User clicked the Cancel button
                         NSLog(@"User canceled request.");
                     } else {
                         // User clicked the Send button
                         NSString *requestID = [urlParams valueForKey:@"request"];
                         NSLog(@"Request ID: %@", requestID);
                     }
                 }
             }
         }];

我有这样的 parseURLParams 函数:

- (NSDictionary*)parseURLParams:(NSString *)query {
    NSArray *pairs = [query componentsSeparatedByString:@"&"];
    NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
    for (NSString *pair in pairs) {
        NSArray *kv = [pair componentsSeparatedByString:@"="];
        NSString *val =
        [[kv objectAtIndex:1]
         stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

        [params setObject:val forKey:[kv objectAtIndex:0]];
    }
    return params;
}
4

1 回答 1

1

我发现这是一个常见问题,因为 SDK 3.5 中的一个错误,所以我将 sdk 从 3.5 更新到 3.5.1 并解决了问题。

于 2013-05-29T20:56:16.680 回答