J7LG

iOS・Androidアプリのインスタントコード Web開発のためのTipsやチュートリアル 少しは役に立ちたいネタもろもろ

iOS6で追加されたSocial Framework、SLComposeViewControllerのサンプルコード

-2012-09-19-10.08.56
このエントリーをはてなブックマークに追加
はてなブックマーク - iOS6で追加されたSocial Framework、SLComposeViewControllerのサンプルコード
Post to Google Buzz
Share on Facebook

iOS6で追加されたSocial Framework。

Twitter Frameworkを置き換えるものとなっています。

ユーザーに対して、Twitter, Facebook, Sina Weiboにポストを促すのには手軽です。

Sina Weiboは中国なかんじのアレなので、今回は華麗にスルーで。

今回使ったソースです。

 

アカウントの設定

iOS5と同様、設定アプリで各サービスのアカウントを設定します。

Facebookのアカウント登録は以下のようなちょっと変わった画面が出てきたので、一応メモ代わりに書いておきます。

う〜ん。どうやらいろんなアプリと連携するようですな。

オンオフは設定アプリで切り替えられるよと。

んでSign Inすると以下の画面が出てきます。

なんかスイッチがついたセルが見れますが・・・「連絡先」の上のセルが正しく表示されてませんねぇ・・英語だし。

まぁSDK自体ベータなので、とりあえずオフにして設定を完了します。

 

フレームワークを追加

TARGETのBuild Phasesで、Social Frameworkを追加します。

SLRequestも使ってみようと思っていたので、Accounts Frameworkも追加していますが、今回は関係ありません。

 

コードを書く

ビューコントローラーに以下のようなコードを書きます。(以下はFacebookのコンポーザーを呼び出します。)

  if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
    SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    void (^completion) (SLComposeViewControllerResult result) = ^(SLComposeViewControllerResult result) {
      [composeViewController dismissViewControllerAnimated:YES completion:nil];
    };
    [composeViewController setCompletionHandler:completion];
    [composeViewController setInitialText:@"Initial text."];
    [composeViewController addURL:[NSURL URLWithString:@"http://www.j7lg.com/"]];
    [composeViewController addImage:[UIImage imageNamed:@"Default.png"]];
    [self presentViewController:composeViewController animated:YES completion:nil];
  }

クラスメソッドのisAvailableForServiceTypeで、アカウントが設定されているか確認します。

SLComposeViewControllerのインスタンスをサービスタイプ(SLServiceTypeFacebook)を指定して生成して、各プロパティを設定します。

SLComposeViewControllerはcompletionHandlerプロパティがあり、ユーザーが送信完了やキャンセルを行った時の処理を、ブロックで指定できます。

これで以下のような画面を表示できます。

サービスタイプをSLServiceTypeTwitterに変更すると、以下のようにTwitterの投稿画面になります。

OSのロケールは日本語にしているのですが、ダイアログの文字は英語ですね・・まぁSDKがベータなので。

 

まとめ

うわさ通りFacebook連携は簡単になりましたねぇ。

アプリのスクショを投稿してもらったり、ソーシャルな使い方ができるようなアプリが増えそうです。

スクショなどはUIImageの合成などが必要なのでめんどいですけどね。

関連記事を参考にしていただけるといいかもしれません。

 

関連記事:

  1. NSStringカテゴリにMD5・・
  2. UIImageを合成して新しいイメージを作る2
  3. MKAnnotationViewに複数の画像を指定するメモ
  4. UIImageを合成して新しいイメージを作る
  5. WordPressの投稿をTwitterと連携する理由

コメントを残す