SLComposeViewController setInitialText不显示在视图中

我试图使用SLComposeViewController共享我的iOS应用程序中的链接。

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; [controller setInitialText:@"Here's the link I promised:"]; [controller addURL:[NSURL URLWithString:@"http://www.url.com"]]; [self presentViewController:controller animated:YES completion:nil]; 

当控制器出现时,input框中没有文字。 您可以添加文本并将其发送正常(该URL中的URL也正确显示)。

我刚刚安装了FacebookSDK 4.01,它是一个iOS 7/8应用程序。

任何想法,为什么最初的文字没有显示出来。 我甚至试图做到这一点没有url,只是做文字,但没有。

附加说明 :如果我删除了addURL,那么当我点击“发布”时,应用程序会冻结,post永远不会被发送。

谢谢你的帮助!!!

我发现了一个很好的方法来解决这个仍然给用户控制。

对于Facebook而言,就在呈现SLComposerViewController之前,我会显示一个自我解散的警报(如果没有点击,那么会有6秒的解雇)。 此警报将包含“写给你的朋友关于你怎么玩!\ n \ n你可以只是粘贴一个预设的消息”。

显示警报之后,我然后使用以下操作将预设消息发送到UIPasteboard:

  UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; pasteboard.string = msg; 

那么SLComposeViewController就会显示出来,并且一个alert view就在它的正上方。 一旦用户closures了警报视图(或者6秒钟过去并且自行解散),则用户可以select只是在消息文本中粘贴预设的消息。 或者不,这就是它的美丽。

希望这能帮助别人解决FB决定突然执行的问题。 我什至没有意识到这是反对政策使用FB的setInitialText方法。

干杯。

这是行为的目的。 另请参阅此错误报告: https : //developers.facebook.com/bugs/962985360399542/ 。 正如@WizKid所提到的那样,这是违反政策预填文本的。 直到最近,你仍然可以这样做(违反政策),但现在这实际上是强制执行的。

在你身边,你无能为力。 这是Facebook的政策执行。

另外,相关的Rdar: http ://openradar.appspot.com/20709403