2

有人让 [FBDialogs canPresentShareDialogWithParams:nil] 正常工作吗?它总是给我不。我应该在 params 中放什么?

    if ([FBDialogs canPresentShareDialogWithParams:nil]) {
    NSURL* url = [NSURL URLWithString:@"http://www.google.fr"];
    [FBDialogs presentShareDialogWithLink:url
                                  handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
                                      if(error) {
                                          NSLog(@"Error: %@", error.description);
                                      } else {
                                          NSLog(@"Success!");
                                      }
                                  }];
} else {
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
        SLComposeViewController *fbComposer = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
        [fbComposer setInitialText:@"Google rocks !"];
        [self presentViewController:fbComposer animated:YES completion:nil];
    } else {
        [[[UIAlertView alloc] initWithTitle:@"Informations" message:@"You have to be registered into the settings of your phone in order to share" delegate:nil cancelButtonTitle:@"Close" otherButtonTitles:nil] show];
    }
}
4

3 回答 3

3

根据 SDK 中的 HelloFacebookSample(以及我自己的经验!):

FBShareDialogParams *p = [[FBShareDialogParams alloc] init];
p.link = [NSURL URLWithString:@"http://developers.facebook.com/ios"];
BOOL canShareFB = [FBDialogs canPresentShareDialogWithParams:p];

如果系统中安装了 Facebook 应用程序, canShareFB将返回YES;如果没有找到 Facebook应用程序,则返回NO

于 2013-06-21T14:56:02.790 回答
0

确保将 FBShareDialogParams 的非零实例传递给 canPresentShareDialogWithParams 方法。SDK 期望接收有效的 FBShareDialogParmas 实例,因此 SDK 可以确保设备上的 Facebook 应用程序版本实际上可以打开将要共享的内容。

例如,如果 FB 在 iOS 上的 Facebook 应用程序的未来版本中添加了对通过 Share Dialog 共享视频的支持,如果设备上存在旧版本的 Facebook 应用程序,canPresentShareDialogWithParams 将返回 NO。

我可以理解文档:https ://developers.facebook.com/ios/share-dialog/在这里可能会造成混淆(抱歉!)。我们将更新它们以反映这一点。

感谢您的反馈; 希望有帮助!

于 2013-07-26T22:54:33.470 回答
0

事实是它总是返回NO。我认为这是问题。

于 2013-06-24T09:18:43.250 回答