PUBLICROOTS

気になったことを紹介していきます!

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]) { 
// Facebook投稿機能のインスタンスを作成する 
SLComposeViewController *slComposeViewController =[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
// 投稿するコンテンツを設定する 
// 表示する文字列 
[slComposeViewController setInitialText:@"#PUBLICROOTS"]; 
// URL 
//[slComposeViewController addURL:[NSURL URLWithString:@"http://publicroots.com"]];
// 画像 (ファイル名が分る場合)
//[slComposeViewController addImage:[UIImage
imageNamed:@"SNScompimg"]]; 
// 画像を添付 
[slComposeViewController addImage:[self makeaShot]];
// 処理終了後に呼び出されるコールバックを指定する
[slComposeViewController
setCompletionHandler:^(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;
}

 

f:id:publicroots:20140506224613p:plain

 

 参考サイト

画像やURLをFacebookやTwitter、LINEなどのSNSに共有する - Think Big Act Local