|
#import "SocialShare.h" |
|
#import <Social/Social.h> |
|
|
|
@interface SocialShare() |
|
{ |
|
SLComposeViewController *composeViewController; |
|
} |
|
|
|
@end |
|
|
|
@implementation SocialShare |
|
|
|
- (id)init |
|
{ |
|
if (self = [super init]) { |
|
; |
|
} |
|
return self; |
|
} |
|
|
|
+ (SocialShare *)sharedSocialShare |
|
{ |
|
__strong static SocialShare *share = nil; |
|
static dispatch_once_t onceToken; |
|
dispatch_once(&onceToken, ^{ |
|
share = [[self alloc] init]; |
|
}); |
|
return share; |
|
} |
|
|
|
- (void)shareToTwitterWithRootViewController:(UIViewController *)controller title:(NSString *)title content:(NSString *)content |
|
{ |
|
[self shareWithServiceType:SLServiceTypeTwitter |
|
rootViewController:controller |
|
title:title |
|
content:content]; |
|
} |
|
|
|
- (void)shareToFacebookWithRootViewController:(UIViewController *)controller title:(NSString *)title content:(NSString *)content |
|
{ |
|
[self shareWithServiceType:SLServiceTypeFacebook |
|
rootViewController:controller |
|
title:title |
|
content:content]; |
|
} |
|
|
|
- (void)shareToSinaWeiboWithRootViewController:(UIViewController *)controller title:(NSString *)title content:(NSString *)content |
|
{ |
|
[self shareWithServiceType:SLServiceTypeSinaWeibo |
|
rootViewController:controller |
|
title:title |
|
content:content]; |
|
} |
|
|
|
- (void)shareByActivityWithRootViewController:(UIViewController *)controller title:(NSString *)title content:(NSString *)content |
|
{ |
|
NSArray *activityitems = @[[title stringByAppendingFormat:@"\n%@", content]]; |
|
|
|
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityitems applicationActivities:nil]; |
|
[controller presentViewController:activityController animated:YES completion:^{ |
|
; |
|
}]; |
|
} |
|
|
|
- (void)shareWithServiceType:(NSString *)serviceType rootViewController:(UIViewController *)controller title:(NSString *)title content:(NSString *)content |
|
{ |
|
if([SLComposeViewController isAvailableForServiceType:serviceType]) |
|
{ |
|
composeViewController = [SLComposeViewController composeViewControllerForServiceType:serviceType]; |
|
[composeViewController setInitialText:[title stringByAppendingFormat:@"\n%@", content]]; |
|
[composeViewController addURL:[NSURL URLWithString:@"http://victorchee.github.com/"]]; |
|
[controller presentViewController:composeViewController animated:YES completion:^{ |
|
; |
|
}]; |
|
} |
|
else |
|
{ |
|
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Oops!" |
|
message:@"Social service is unavailable." |
|
delegate:nil |
|
cancelButtonTitle:@"Don't send it." |
|
otherButtonTitles:nil, nil]; |
|
[alert show]; |
|
alert = nil; |
|
} |
|
} |
|
|
|
@end |