Swift上的FB共享功能

时间:2017-11-23 23:38:57

标签: swift facebook

我正在使用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
有没有人知道如何纠正文档中的代码以便它有效?然后我认为我的问题已经完成。

1 个答案:

答案 0 :(得分:0)

它有点令人困惑,因为ShareDialog类具有静态show方法以及同名的实例方法。在您的代码片段中,您正在访问静态(类级别)函数版本ShareDialog.show(请注意大写字母s)。

阅读Sharing With The Share Dialog部分,查看调用实例方法shareDialog.show的代码片段(注意小写s)。示例代码显示了如何指定一个完成处理程序来处理您要查找的结果,该结果将是ContentSharerResult类型(包含成功,失败,已取消的枚举)。

顺便说一句,static func也接受一个完成处理程序作为可选参数,默认为nil。如果您愿意,可以使用它,并且对闭包语法感到满意。否则,请使用链接中所示的实例方法。