iOS Facebook SDK 4 FBSDKShareDialog

Posted

技术标签:

【中文标题】iOS Facebook SDK 4 FBSDKShareDialog【英文标题】: 【发布时间】:2015-10-01 14:56:59 【问题描述】:

当我尝试实现 FBSDKShareDialog 以通过我的应用程序执行 facebook 共享时遇到了一些麻烦。如果安装了官方 fb 应用程序,它会显示空白对话框(用户允许在其中键入一些文本等)。如果用户没有 fb 应用程序,它会显示正确的信息,但 FBSDKSharingDelegate 方法不起作用。 (即使用户有FB应用程序也不起作用)

- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results

    NSLog(@"complete");

- (void)sharerDidCancel:(id<FBSDKSharing>)sharer

    NSLog(@"did cancel");


- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error

    NSLog(@"%@", error);

即使我通过 FB 应用程序取消或分享,它也不会被调用。 我的代码是:

FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
    content.contentTitle = _place.title;
    content.imageURL = [NSURL URLWithString:_place.logoUrl];
    content.contentDescription = _place.info;
[FBSDKShareDialog showFromViewController:_viewController withContent:content delegate:self];

我在@interface 声明中有一个代表。

@interface FacebookHandler () < FBSDKSharingDelegate >

@end

我的应用代理有

#import <FBSDKCoreKit/FBSDKCoreKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
return [[FBSDKApplicationDelegate sharedInstance] application:application
                                    didFinishLaunchingWithOptions:launchOptions];


- (void)applicationDidBecomeActive:(UIApplication *)application 
    [FBSDKAppEvents activateApp];


- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation 
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:annotation];

我哪里错了?通过FBSDKShareLinkContent 发布一些图片和标题是否是个好主意。提前致谢。

【问题讨论】:

【参考方案1】:

你是从主线程调用[FBSDKShareAPI shareWithContent:content delegate:self] 吗?

【讨论】:

【参考方案2】:

我已经解决了这个问题。问题是我已经委托给从 NSObject 继承的文件,它不能是委托

【讨论】:

以上是关于iOS Facebook SDK 4 FBSDKShareDialog的主要内容,如果未能解决你的问题,请参考以下文章

ParseFacebookUtilsV4 和 Facebook-iOS-SDK 4.0

无法识别的选择器在 iOS9 上的 facebook sdk 4.6 中发送到 facebook 登录管理器的实例

在 Facebook iOS SDK 4.4 上分享视频

iOS Facebook 登录 SDK 4.12

iOS Facebook SDK 4 会话

Facebook SDK 4.x 权限问题 iOS