FBSDKShareDialogModeNative在共享点击时调用sharerDidCancel

时间:2016-05-12 08:38:46

标签: ios facebook facebook-ios-sdk

我在通过facebook-ios-sdk分享链接时遇到问题。

我需要使用FBSDKShareDialogModeNative进行分享对话,FBSDKShareDialogModeShareSheet对我来说不是一个选项,因为我需要为在这种模式下无效的给定内容设置标题,描述和图像。我发现的每个答案都推荐这种模式。

当我使用FBSDKShareDialogModeNative时,本地Facebook应用程序以正确的内容打开,但在点击共享按钮后,fb应用程序将关闭,并且不会共享任何内容。也调用了委托方法sharerDidCancel

只有按预期工作的选项是通过浏览器与模式FBSDKShareDialogModeFeedBrowser共享。

示例代码:

FBSDKShareLinkContent *content = [FBSDKShareLinkContent new];
content.contentURL = [NSURL URLWithString:@"http://google.com"];                                                                     // Random
content.contentTitle = @"Test title";                                                                                                // Random
content.contentDescription = @"Test description";                                                                                    // Random
content.imageURL = [NSURL URLWithString:@"http://www.gettyimages.pt/gi-resources/images/Homepage/Hero/PT/PT_hero_42_153645159.jpg"]; // Random

FBSDKShareDialog *dialog = [FBSDKShareDialog new];
dialog.fromViewController = self;
dialog.shareContent = content;
dialog.delegate = self;
dialog.mode = FBSDKShareDialogModeNative;

if (![dialog canShow]) {
    dialog.mode = FBSDKShareDialogModeFeedBrowser;
}

[dialog show];

有人解决了这个问题吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我发现我在plist中使用了错误的FacebookDisplayName

SDK不会给你任何警告(它在fb native中点击Done / Share按钮后无声地失败)并且在其他模式下共享错误的显示名称(shareSheet,feedBrowser等)。

答案 1 :(得分:0)

您好,您需要使用此代码。

b$a1[i1] <- ifelse(b$a[i1]=="NA", 1,b$a[i1])