背景
iOS(Xcode)で実装をしている際、ちょっと試すためにテストアプリを作りたい場合がある。端末内だけでシュミレーターを使える場合は問題ないけれど、実機でしか利用できないセンサーなどの動作を試したり、誰かに見せるために実機にインストールしたい場合には、プロビジョニングプロファイルが必要である。
これが面倒なんですよね・・・
実はこれ省略できます。
さて、環境を作っていきましょう。
SLComposeViewController *facebookPostVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];SLComposeViewControllerを利用して、Facebookに対し、投稿テキスト、URL、イメージを投稿しています。
[facebookPostVC setInitialText:text];
[facebookPostVC addURL:[NSURL URLWithString:url]];
[facebookPostVC addImage:[UIImage imageNamed:image]];
[facebookPostVC setCompletionHandler:^(SLComposeViewControllerResult result) {
if (result == SLComposeViewControllerResultDone) {
//投稿完了の処理
}
}];
[ViewController presentViewController:facebookPostVC animated:YES completion:nil];
NSString *iosVersion = [[[UIDevice currentDevice] systemVersion] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];iOSのバージョンで、Social.frameworkを使うか、Twitter.frameworkを利用するかを決定しています。
if ([iosVersion floatValue] >= 6.0) {
}
else if ([iosVersion floatValue] >= 5.0) {
}
SLComposeViewController *twitterPostVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];SLComposeViewControllerを利用して、Twitterに対し、投稿テキスト、URL、イメージを投稿しています。
[twitterPostVC setInitialText:text];
[twitterPostVC addURL:appURL];
[twitterPostVC addImage:[UIImage imageNamed:image]];
[twitterPostVC setCompletionHandler:^(SLComposeViewControllerResult result) {
if (result == SLComposeViewControllerResultDone) {
//投稿完了の処理
}
}];
[ViewController presentViewController:twitterPostVC animated:YES completion:nil];
text = [text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];LINEに文字列を投稿するためのURLを作成します。
NSString *LINEUrlString = [NSString stringWithFormat:@"line://msg/text/%@", text];
//iOS7.0以降では共有のクリップボードを使う必要があるLINEにイメージを投稿するためのURLを作成します。
UIPasteboard *pasteboard;
if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {
pasteboard = [UIPasteboard generalPasteboard];
} else {
pasteboard = [UIPasteboard pasteboardWithUniqueName];
}
[pasteboard setData:UIImagePNGRepresentation(image) forPasteboardType:@"public.png"];
NSString *LINEUrlString = [NSString stringWithFormat:@"line://msg/image/%@", pasteboard.name];
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:LINEUrlString]]) {LINEアプリがインストールされているか確認します。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:LINEUrlString]];LINEへ投稿します。