我正在使用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
有没有人知道如何纠正文档中的代码以便它有效?然后我认为我的问题已经完成。
答案 0 :(得分:0)
它有点令人困惑,因为ShareDialog类具有静态show
方法以及同名的实例方法。在您的代码片段中,您正在访问静态(类级别)函数版本ShareDialog.show
(请注意大写字母s)。
阅读Sharing With The Share Dialog部分,查看调用实例方法shareDialog.show
的代码片段(注意小写s)。示例代码显示了如何指定一个完成处理程序来处理您要查找的结果,该结果将是ContentSharerResult类型(包含成功,失败,已取消的枚举)。
顺便说一句,static func也接受一个完成处理程序作为可选参数,默认为nil。如果您愿意,可以使用它,并且对闭包语法感到满意。否则,请使用链接中所示的实例方法。