Facebook 与 SLComposeViewController 共享 : Prevent completion handler when no internet is available

标签 facebook ios6

我在我的应用程序(iOS6)中实现了Facebook分享,代码如下。

//完成处理器

SLComposeViewControllerCompletionHandler __block completionHandler = ^(SLComposeViewControllerResult result) {
    UIAlertView *alert = nil;
    switch(result) {
        case SLComposeViewControllerResultCancelled: {
            alert = [UIAlertView alloc]initWithTitle:@"Cancelled" message:@"Your message wasn't shared" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
            [alert show];
        }
        break;
        case SLComposeViewControllerResultDone: {
            alert = [UIAlertView alloc]initWithTitle:@"Posted" message:@"Your message was posted successfully" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
            [alert show];
        }
        break;
    }
}

//发布到 Facebook

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
    SLComposeViewController *fbVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    fbVC.completionHandler = completionHandler;
    [self presentViewController:fbVC animated:YES completion:nil];
}

我正在测试以下情况:

  1. 互联网可用,用户输入文本并按下帖子
  2. 互联网可用,用户输入文本并按下取消
  3. 互联网不可用,用户输入了文字并按下了帖子。

前两个工作正常。在第三种情况下,不出所料,我得到了警报

"Cannot Post to Facebook" - The post cannot be sent because connection to Facebook failed.

但是在显示给我的警报 View 中按下“再试一次”或“取消”按钮后,我收到“已发布”警报(完成处理程序类型 SLComposeViewControllerResultDone 得到执行)。

如何防止这种情况?

最佳答案

请检查如果您要向 It(SLComposeViewController) 添加 URl,则它必须是 http://www.stackoverflow.com格式化,否则它将继续显示 “无法发布到 Facebook”- 无法发送帖子,因为无法连接到 Facebook。

HTH

关于Facebook 与 SLComposeViewController 共享 : Prevent completion handler when no internet is available,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16411324/

相关文章:

ios - 验证 Facebook/Twitter 连接的最佳实践。 (防止逆向工程 key )

iphone - iPad 中的异常,UIImagePickerController 必须通过 UIPopoverController 呈现

ios - UIImagePickerController 在拍照时是横向的,但在预览时是纵向的

Facebook 使用 Graph API 发布号召性用语按钮

android - 如何使用Delphi实现android和ios的共享文本选项

分享链接时 Facebook 显示找不到页面

ios - Facebook iOS sdk 获取用户 ID

ios - 试图实现一个委托(delegate),当在导航栏中按下后退按钮时发出信号 - 我做错了什么?

ios - 如何翻转图像并使其在所有状态下正确显示

ios - 我已经制作了一个应用程序,但现在我被告知它要向后兼容以前的 iOS 版本