我正在我的应用中实施Facebook分享。需要与描述共享图像,但是一旦点击或点击图像,它应该被导航到门户网站。
然而,这可以使用feed对话框,但我想使用社交框架来做到这一点。这可能吗 ?
答案 0 :(得分:2)
使用SLComposeViewController,您无法为用户预填充Facebook帖子。这些方法存在于社交框架中,但几年前Facebook不允许应用程序执行此操作,因此即使您使用:
BOOL initialTextSet = [fbController setInitialText:@"Check out this article."];
该方法将返回YES,但文本实际上不会被填充。
如果您想要更多地控制您发布的内容,那么您必须将Facebook SDK添加到您的项目中。我实际上在我的应用程序的早期版本中走了那条路线,但是维护变得很痛苦。最后,我选择了Apple原生框架。它比FB SDK更容易使用,并且它具有前瞻性。无需怀疑你的下一个iOS版本是否会突然破坏Facebook的份额,因为SDK需要更新(而且经常会更新)。
答案 1 :(得分:1)
似乎不可能这样做这种定制。但是,要从本机框架实现所需的功能,网页网址应包含元数据,如以下帖子所述。
答案 2 :(得分:0)
使用此
SLComposeViewController * fbController=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){
[fbController dismissViewControllerAnimated:YES completion:nil];
switch(result){
case SLComposeViewControllerResultCancelled:
default:
{
NSLog(@"Cancelled.");
}
break;
case SLComposeViewControllerResultDone:
{
NSLog(@"Posted.");
}
break;
}};
[fbController addImage:[UIImage imageNamed:@"1.jpg"]];
[fbController setInitialText:@"Check out this article."];
[fbController addURL:[NSURL URLWithString:@"URLString"]];
[fbController setCompletionHandler:completionHandler];
[self presentViewController:fbController animated:YES completion:nil];
}
答案 3 :(得分:0)
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
if (result == SLComposeViewControllerResultCancelled)
{
DebugLog(@"Cancelled");
}
else
{
[UIUtils alertView:NSLocalizedString(@"FB POST SUCCEEDED", nil) withTitle:NSLocalizedString(@"SUCCESS", nil)];
}
[controller dismissViewControllerAnimated:YES completion:Nil];
};
controller.completionHandler =myBlock;
//Adding the Text to the facebook post value from iOS
[controller setInitialText:NSLocalizedString(@"SHARE TWITTER", nil)];
//Adding the URL to the facebook post value from iOS
// [controller addURL:[NSURL URLWithString:@"http://www.mobile.safilsunny.com"]];
//Adding the Image to the facebook post value from iOS
[controller addImage:self.crushCardImage];
[self.view.window.rootViewController presentViewController:controller animated:YES completion:Nil];
}
else
{
[UIUtils alertView:NSLocalizedString(@"NO FB", nil) withTitle:NSLocalizedString(@"FAILURE", nil)];
}
}