我正在尝试使用 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];
当 Controller 呈现时,输入框中没有文本。您可以添加文本并正常发送(URL 也正确显示在帖子中)。
我刚刚安装了 FacebookSDK 4.01,它是一个 iOS 7/8 应用程序。
关于为什么初始文本未显示的任何想法。我什至尝试在没有 URL 的情况下只做文本,但什么也做不了。
附加说明:如果我确实删除了 addURL,那么当我触摸“发布”时应用程序会卡住,并且永远不会发送该帖子。
感谢您的帮助!!!
最佳答案
我找到了一种解决此问题的好方法,它仍然为用户提供了控制权。
仅适用于 Facebook,在展示 SLComposerViewController 之前,我显示了一个 self 关闭警报(如果没有点击确定,则有 6 秒关闭)。此警报将包含“写信给您的 friend ,告诉他们您玩得怎么样!\n\n您可以粘贴预设消息。”。
在显示警报后,我立即使用以下内容将预设消息发布到 UIPasteboard:
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = msg;
然后 SLComposeViewController 出现,并且在其上方有一个警报 View 。一旦用户关闭警报 View (或 6 秒后自动关闭),用户可以选择直接在消息文本中粘贴您的预设消息。或者不是,这就是它的美妙之处。
希望这可以帮助其他人解决 FB 决定突然强制执行的问题。我什至没有意识到对 FB 使用 setInitialText 方法是违反政策的。
干杯。
关于ios - SLComposeViewController setInitialText 未显示在 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29970741/