Ios swift中的Facebook本机共享对话框

Ios swift中的Facebook本机共享对话框,ios,facebook,swift,facebook-graph-api,facebook-sdk-4.0,Ios,Facebook,Swift,Facebook Graph Api,Facebook Sdk 4.0,我正在尝试创建共享按钮,它将在Facebook上共享一个链接。问题是,我不想在我的应用程序中的共享按钮之前有一个登录按钮,我只需要有一个共享按钮 我认为一个解决方案可能是使用自定义按钮登录和共享按钮,并将这些按钮合并到一个按钮中。这样,如果用户在单击“共享”按钮时尚未登录,则会要求用户登录。然而,在我试图实现这一点的过程中,我发现本机共享对话框是更好的解决方案,因为它根本不请求登录 但我很难找到任何参考资料/教程/示例或任何与swift一起使用本机共享对话框的地方。Obj-c上有一些例子和东西,

我正在尝试创建共享按钮,它将在Facebook上共享一个链接。问题是,我不想在我的应用程序中的共享按钮之前有一个登录按钮,我只需要有一个共享按钮

我认为一个解决方案可能是使用自定义按钮登录和共享按钮,并将这些按钮合并到一个按钮中。这样,如果用户在单击“共享”按钮时尚未登录,则会要求用户登录。然而,在我试图实现这一点的过程中,我发现本机共享对话框是更好的解决方案,因为它根本不请求登录

但我很难找到任何参考资料/教程/示例或任何与swift一起使用本机共享对话框的地方。Obj-c上有一些例子和东西,但我从未使用过Obj-c,对此我一无所知

如果有人有任何例子,或者有人能告诉我如何在Swift中实现Facebook本机共享对话,我很高兴


如果没有人在Swift上使用自定义共享按钮的例子,您不需要自己登录。实际上,在iOS中,如果您使用的是iOS SDK,iOS将为您处理

从文件:

声明(SWIFT)

参数

activityItems要对其执行操作的数据对象数组 活动。数组中对象的类型是可变的和依赖的 在应用程序管理的数据上。例如,数据可能 由一个或多个表示 当前选定的内容

此数组中的对象可以是 采用UIActivityItemSource协议的对象,例如 UIActivityItemProvider对象。源对象和提供程序对象充当 在您不需要的情况下,相应数据的代理 在需要之前提供该数据

此数组不能为nil,并且必须至少包含一个对象。 applicationActivities表示应用程序的UIActivity对象数组 应用程序支持的自定义服务。此参数可能是 零

截取的代码:

let so:NSURL = NSURL(string:"http://stackoverflow.com")
let activityVC = UIActivityViewController(
            activityItems: ["Some text here...", so],
            applicationActivities: nil)
self.navigationController.presentViewController(activityVC, 
   animated: true, 
   completion: nil)
或者,您可以使用Facebook的SDK来实现这一点(您需要在项目中添加)。SDK还将处理登录

以下是先决条件:

在从应用程序共享到Facebook之前,您需要:

将FacebookSDK for iOS添加到您的移动开发环境中 获取Facebook应用程序ID,正确配置并链接到您的iOS应用程序 将应用id和显示名称添加到应用的.plist文件中。链接 将FBSDKShareKit.framework添加到项目中

以下是Facebook SDK页面:

以下是一些用于URL共享的代码片段:

let content : FBSDKShareLinkContent = FBSDKShareLinkContent()
content.contentURL = NSURL(string: self.short_string)
content.contentTitle = self.title_text
// ... etc.

let button : FBSDKShareButton = FBSDKShareButton()
button.shareContent = content

实际上我想出了一个解决办法

这些代码行将在Swift中实现Facebook本机共享对话框:

let content: FBSDKShareLinkContent = FBSDKShareLinkContent()
content.contentURL = NSURL(string: self.contentURL)
content.contentTitle = self.contentTitle
content.contentDescription = self.contentDescription
content.imageURL = NSURL(string: self.contentURLImage)
FBSDKShareDialog.showFromViewController(self, withContent: content, delegate: nil)

实际上,我使用Facebook SDK 4.1是因为我想共享一个链接。直到我知道我可以在fb上共享链接。但是,当我在分享链接之前尝试这样做时,我需要登录,这两个功能在不同的按钮中,这不是我想要的。因此,我尝试使用Facebook共享对话框,因为它们不要求登录。此外,我不熟悉Obj-C,但如果你需要上传我的cod,我can@IlirVGruda你能提供一个链接到一些关于iOS SDK的SharingActivityProvider的文档吗。我的谷歌搜索发现无.Iget错误
使用未声明的类型“FBSDKShareLinkContent”
原因是什么?我确实导入了FacebookShare模块。您需要先阅读Facebook提供的有关ios SDK的文档。我实际上已经阅读了它,但所有内容都是Obj-C,我对此有困难。这就是为什么我希望在斯威夫特上找到一些东西
let content: FBSDKShareLinkContent = FBSDKShareLinkContent()
content.contentURL = NSURL(string: self.contentURL)
content.contentTitle = self.contentTitle
content.contentDescription = self.contentDescription
content.imageURL = NSURL(string: self.contentURLImage)
FBSDKShareDialog.showFromViewController(self, withContent: content, delegate: nil)