在 iOS 上将 Facebook SDK 会话对象与 UIActivityViewController 结合使用

Use Facebook SDK session object with the UIActivityViewController on iOS

我在 iOS 上使用 Facebook SDK 让用户登录我的应用。用户登录后,我有 FBSession 对象可用于共享并向 Facebook 发出其他请求 API。

我有一个功能,用户可以选择通过可用的社交服务分享一些特定的内容,所以我决定使用 UIActivityViewController 来完成这个。

我的问题是:有没有一种方法可以使用登录用户的 FBSession select UIActivityViewController 上的 Facebook 选项,而无需在设备设置中再次登录?谢谢!

如果您使用 Facebook 系统登录,如果您向 UIActivityController 提供 Facebook 可以处理的项目(例如文本和图像,或者),它应该会在打开后自动显示在可用的共享方法中.

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[text, url, image] applicationActivities:nil];

[self presentViewController:controller animated:YES completion:nil];

如果您不想使用系统 Facebook 登录,您将不得不创建自己的 UIActivity,它将使用您引用的 FBSession 对象。然后在初始化 UIActivityViewController.

时将自定义 UIActivity 对象传递到 applicationActivities 参数中

查看 UIActivity Documentation。它会告诉您使用现有 FBSession 对象实现自定义 activity 所需了解的一切。

不过,我建议尽可能使用系统 Facebook 功能。