2

我正在尝试为 iOS 6 实现本机 facebook 共享,并且需要检查共享是否成功。这是我使用的代码:

BOOL displayedNativeDialog =
    [FBNativeDialogs
     presentShareDialogModallyFrom:delegate
     initialText:@"test"
     image:nil
     url:nil
     handler:^(FBNativeDialogResult result, NSError *error) {
         if (error) {
             /* handle failure */
             NSLog(@"error:%@, %@", error, [error localizedDescription]);
         } else {
             if (result == FBNativeDialogResultSucceeded) {
                 /* handle success */
                 NSLog(@"handle success");
             } else {
                 /* handle user cancel */
                 NSLog(@"user cancel");
             }
         }
     }];
    if (!displayedNativeDialog) {
        /* handle fallback to native dialog  */
    }

我的问题是,当我在没有可用互联网连接的情况下尝试此操作时,我仍然得到 FBNativeDialogResultSucceeded

当没有可用的互联网连接时,您似乎应该收到一个错误,但它似乎不是那样工作的。如果有一些解决方案我不需要使用可达性 SDK,那就太好了。

4

1 回答 1

0

此时您可能必须使用可达性 SDK。Facebook SDK 构建在 SLComposeViewController 之上以实现本机功能。该视图控制器返回两个可能的选择:

  • SLComposeViewControllerResultCancelled
  • SLComposeViewControllerResultDone

SLComposeViewControllerResultDone:视图控制器被关闭,消息正在后台发送。当用户选择完成时会发生这种情况。

因此,由于 Facebook 反映了这一点,成功案例意味着用户点击完成并且消息已在后台发送。

但是,如果您运行此程序并且没有 Internet 连接,用户仍应看到一个弹出窗口,指示由于连接失败而无法发送帖子。

于 2012-10-16T03:12:49.367 回答