您的位置:首页 > 移动开发 > IOS开发

iOS中facebook与twitter分享问题总结(2)

2014-11-17 10:33 1571 查看
上次总结了facebook和twitter分享的三种方式:1.Facebook官方的SDK分享 2.ShareSDK,第三方集成的分享方式 3.网页分享方式分享

其实还漏了一种,那就是IOS6之后,苹果自己集成了对于Facebook和Twitter等社交分享进行了集成。

具体的使用方法如下:

首先:加入Social.framework。

在使用分享的那个类的头文件加入

#import <Social/Social.h>

声明变量: SLComposeViewController *slComposerSheet;

使用的时候主要的要点:

如果你的当前的app只需要满足IOS6及以上系统的用户的需求(毕竟IOS5及以下的用户量很少),那么就不需要考虑太多,直接使用系统的分享方式。如下:(建议做个异常判断,毕竟崩溃也不好)

//facebook分享

if ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=6)

{

// if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

//{

slComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

[slComposerSheet setInitialText:@"share facebook"];

[slComposerSheet addImage:[UIImage imageNamed:@"ios6.jpg"]];

[slComposerSheet addURL:[NSURL URLWithString:@"http://www.facebook.com/"]];

[self presentViewController:slComposerSheet animated:YES completion:nil];

//}

[slComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {

NSLog(@"start completion block");

NSString *output;

switch (result) {

case SLComposeViewControllerResultCancelled:

output = @"Action Cancelled";

break;

case SLComposeViewControllerResultDone:

output = @"Post Successfull";

break;

default:

break;

}

if (result = SLComposeViewControllerResultCancelled)

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Weibo Message" message:output delegate:nil cancelButtonTitle:@"Ok"
otherButtonTitles:nil];

[alert show];

}

}];

}

else

{

//ios5.0极其以下的系统需要做的处理,可以直接弹出提示框

如果确定需要支持分享,则建议使用网页分享的方式。

}

twitter和facebook的分享类似,需要把SLServiceTypeFacebook这个改为SLServiceTypeTwitter即可

如果用这种分享处理IOS6以上系统,然后用网页分享处理IOS5及以下的系统,那也是很不错的。

但是个人建议,如果你们公司对于源码要求不高,可以尝试用ShareSDK这种第三方的分享模式,简单快捷,分享这个功能最多需要一天时间就行了,里面包含国内国外基本上所有的社交分享方式。谁用谁知道。

还有一种组合方式是:是使用Facebook的官方的SDK,twitter使用网页分享
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: