我正在使用 Swift 在 iOS 应用程序上实现 FB 共享功能,我使用的模块是“Facebookshare”,我已经得到了正确的结果,但我需要知道结果。似乎每次都会弹出一个窗口,当我发布或取消时,窗口就会关闭并且没有返回值返回给我。我需要知道它是由用户发布还是取消,那么我应该如何更正我的代码? 任何想法将不胜感激。 相关代码:
import FacebookShare
let urlToGet = //urlToGetTheContent
let content = LinkShareContent(url: NSURL(string: urlToGet)! as URL)
do { let x = try ShareDialog.show(from: self, content: content)
print(x) //x is to show the status, but it is always 'FacebookShare.ShareDialog<FacebookShare.LinkShareContent>'
} catch {
//handling errors
}
另外,我在Facebook官网上看到了这个例子,虽然可以编译,但我的应用程序在执行代码时总是崩溃,所以我没有使用它。
https://developers.facebook.com/docs/swift/sharing/graph-api
有人知道如何更正文档中的代码以使其正常工作吗?那么我想我的问题就解决了。
最佳答案
这有点令人困惑,因为 ShareDialog 类有一个静态 show
方法以及一个同名的实例方法。在您的代码片段中,您正在访问静态(类级别)函数版本 ShareDialog.show
(注意大写的 s)。
阅读有关 Sharing With The Share Dialog 的部分查看调用实例方法 shareDialog.show
的代码片段(注意小写的 s)。示例代码展示了如何指定完成处理程序来处理您正在查找的结果,该结果的类型为 ContentSharerResult(包含 Success、Failed、Cancelled 的枚举)。
顺便说一句,静态函数还接受完成处理程序作为可选参数,默认为 nil。如果您喜欢并且熟悉闭包语法,您可以使用它。否则,请使用链接中所示的实例方法。
关于swift - Swift 上的 FB 分享功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47464571/