上次总结了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使用网页分享
其实还漏了一种,那就是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使用网页分享