Objecti-ve-C : Social.frameworkライブラリ
iOS6から実装されたライブラリSocial.frameworkを使うと
簡単にSNSへシェアができるようになります。
#import <Social/Social.h>〜略〜// Facebookシェアボタン設置
UIImage *FBsharebtnimg = [UIImage imageNamed:@"facebook.png"];
FBrepbutton = [[[UIButtonalloc] initWithFrame:CGRectMake(160, 468, 80, 100)] autorelease];
[FBrepbuttonsetBackgroundImage:FBsharebtnimg forState:UIControlStateNormal];
[FBrepbuttonaddTarget:selfaction:@selector(FBshareaction:) forControlEvents:UIControlEventTouchDown];
[self.viewaddSubview:FBrepbutton];
〜略〜
- (void)FBshareaction:(id)sender {//NSLog(@"Facebookシェア保存");// 組み込みのFacebookが利用可能な端末かを検証するif ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {SLComposeViewController *slComposeViewController =[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];// 投稿するコンテンツを設定する// 表示する文字列[slComposeViewController setInitialText:@"#PUBLICROOTS"];// URL//[slComposeViewController addURL:[NSURL URLWithString:@"http://publicroots.com"]];// 画像 (ファイル名が分る場合)//[slComposeViewController addImage:[UIImageimageNamed:@"SNScompimg"]];// 画像を添付[slComposeViewController addImage:[self makeaShot]];
// 処理終了後に呼び出されるコールバックを指定する[slComposeViewControllersetCompletionHandler:^(SLComposeViewControllerResult result) {switch (result) {case SLComposeViewControllerResultDone:NSLog(@"Done!!");break;case SLComposeViewControllerResultCancelled:NSLog(@"Cancel!!");}}];// 表示する[self presentViewController:slComposeViewController animated:YES completion:nil];}}
Twitterの場合は、isAvailableForServiceType:SLServiceTypeFacebookを
isAvailableForServiceType:SLServiceTypeTwitterにすればOKです。
また、画像を添付したい時は、ファイル名を入れるか、
上記では別に画面キャプチャを撮って添付しています。
-(UIImage*)makeaShot {
//NSLog(@"シェア用画像保存スタート");UIImage *image;CGRect snsrect = CGRectMake(0, 0, 320, 468);UIGraphicsBeginImageContext(snsrect.size);[self.view.layerrenderInContext:UIGraphicsGetCurrentContext()];image = UIGraphicsGetImageFromCurrentImageContext();// 画像コンテキストを終了UIGraphicsEndImageContext();//NSLog(@"シェア用画像保存完了");return image;}
参考サイト
画像やURLをFacebookやTwitter、LINEなどのSNSに共有する - Think Big Act Local