SLComposeViewController 不会为 SLServiceTypeFacebook 设置 initialText
Posted
技术标签:
【中文标题】SLComposeViewController 不会为 SLServiceTypeFacebook 设置 initialText【英文标题】:SLComposeViewController won't set initialText for SLServiceTypeFacebook 【发布时间】:2015-04-25 20:44:13 【问题描述】:这似乎是社交框架中的一个错误,它不会为 Facebook 服务类型设置初始文本。这是我使用 Swift 实现的:
let view = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
if view.setInitialText("Some text")
NSLog("Success")
else
NSLog("Failure")
view.addURL(NSURL(string: "https://google.ro"))
self.presentViewController(view, animated: true, completion: nil)
它的作用:
Facebook 和 Twitter 都会显示 URL initialText 仅适用于 Twitter什么不起作用:
即使上面的代码输出“成功”,initialText 也不会显示在 Facebook 上更新 2
Facebook 似乎真的不希望开发人员在共享时设置消息的初始文本,因为即使使用他们的 SDK 也不可能。在我正在实施的应用中,我选择了应用中的屏幕截图(以图片形式上传),让用户在 Facebook 上分享他们的进度。
更新
解决方案是使用 Facebook SDK for ios,Facebook 不再支持 Social framework 的该功能。
【问题讨论】:
【参考方案1】:不是错误,Facebook 不再允许这样做。
iOS 分享表的使用受 Facebook 平台政策的约束,包括第 2.3 节,其中规定应用不得预填充。在共享表的上下文中,这意味着应用可能不会在共享表的 initialText 字段中预先填充人们在使用应用之前未输入的内容。
【讨论】:
【参考方案2】:Facebook 不再允许预先填写消息。 欲了解更多信息here
也就是说,如果您使用原生 Facebook sdk,它不会解决您的问题,因为 Facebook 不会发布您的应用。 因此,正如 Facebook 指南中所写,您拥有的唯一解决方案是:
-
使用用户之前在应用流程中手动输入的内容填充用户消息参数。
您应用的作曲家可以包含一个号召性用语,当人们开始写帖子时该号召性用语就会消失。例如,Facebook 的作曲家使用灰度文本来询问“你在想什么?”当人们开始写作时,它就会消失。
【讨论】:
【参考方案3】:我认为这是一个 iOs 8.3 错误。 在我更新到该版本之前,它工作正常。 :-(
【讨论】:
是的,这是一个错误。我将改用 Facebook 和 Twitter SDK。它们要好得多,也更复杂。以上是关于SLComposeViewController 不会为 SLServiceTypeFacebook 设置 initialText的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 SLComposeViewController 将图像发布到 Facebook?
SLComposeViewController 深色键盘外观