SLComposeViewController中的setInitialText方法在iOS 8.3中无法在Facebook页面中显示文本。

20
下面的代码片段是屏幕按钮的回调。Facebook表单出现了,但是没有任何文本。然而,如果你用SLServiceTypeTwitter替换SLServiceTypeFacebook,它会显示初始文本。我正在使用XCode 6.3.1和iOS 8.3在iPhone 6上。提前致谢。
-(IBAction)facebookButton:(id)sender
{
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
    {
        NSString* facebookText = @"Awesome App";
        SLComposeViewController *fbPostSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
        [fbPostSheet setInitialText:facebookText];
        [self presentViewController:fbPostSheet animated:YES completion:nil];
    }
    else{
         UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:@"Unable to Connect to Facebook"
                              message:@"Make sure your device has an internet connection and you have your Facebook account setup in the Settings App"
                              delegate:self
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
        [alertView show];
    }
}        

自从Facebook最近的更新以来,从Facebook对话框中删除初始文本已成为一个问题。你并不孤单。 - Daniel Storm
在iOS8.2中也遇到了同样的问题,但尚未找到解决方案。 - Teena nath Paul
我也有同样的问题,我使用的是8.0版本。 - Rohit suvagiya
2个回答

15
如果您在设备上删除Facebook应用程序,最初的文本将出现。

13
在我的iPhone上删除Facebook应用程序确实可以让初始文本出现。然而,我不能要求我的用户删除他们的Facebook应用程序,以便他们可以在Facebook上发布他们的分数。 - Graham French
您可能希望为您的应用程序创建自定义用户界面。请注意,您必须提交应用程序进行Facebook审核。我也尝试在谷歌上搜索了此问题,但遗憾的是没有找到任何相关文档。 - Chrisswong
1
制作自己的Facebook分享UI可以让您为Facebook分享提供任何初始文本。但是,您必须在Facebook开发者网站上注册,启用“publish_actions”权限并提交iOS模拟器构建以供Facebook审核,以便您可以与Facebook分享并分享给公众。您必须了解此政策,以获取您提供的初始文本。 - Chrisswong
使用Facebook分享对话框 - Kirit Vaghela
1
@Chrisswong,你能分享一下你的应用链接吗?这样我们就可以了解如何创建自定义对话框。我已经被这个问题困扰了几周了。谢谢。 - Usman Nisar
显示剩余4条评论

1
实际上,如果您在完成处理程序中设置文本,则它会起作用:
NSString* facebookText = @"Awesome App";
SLComposeViewController *fbPostSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
//[fbPostSheet setInitialText:facebookText];
[self presentViewController:fbPostSheet animated:YES completion:^
{
    [fbPostSheet setInitialText:facebookText];
}];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接