iOS 6のソーシャルメディア統合

今年6月に開催されたWWDC 2012では、イノベーションの中でソーシャルフレームワークが導入されました。 このフレームワークにより、ソーシャルネットワークに共有ボタンを迅速かつ簡単に統合できます。 ソーシャルフレームワークは、iOS 5で導入されたTwitterフレームワークに取って代わりました。今では、Twitterだけでなく、FacebookとWeibo(中国のTwitterに相当)を過度のトラブルなしにアプリケーションに統合することができます。



始めましょう。 まず、Xcodeで新しいプロジェクトを作成する必要があります。任意の名前を選択できます。 プロジェクトタイプ-シングルビューアプリケーション。



最初に、アプリケーションインターフェイスを作成します。この場合、画像ウィンドウ、テキスト入力フォーム、2つのボタンで構成されます。



投稿に添付される画像ウィンドウに画像が表示され、共有したいリンクを入力フォームに入力できます。2つのボタンを使用して、必要なソーシャルネットワークを選択します。



まず、ViewController.hを開き、UIImageViewとUITextFieldを宣言します。 ViewControllerをUITextFieldのデリゲートにする必要があります。 これはすべて非常に簡単に行われます。これがViewController.hコードがプロジェクトでどのように見えるかです。



#import <UIKit/UIKit.h> @interface ViewController : UIViewController <UITextFieldDelegate>{ UITextField *textField; UIImage *shareImage; } @end
      
      







これで最も興味深い部分、つまりアプリケーションインターフェイスの作成を開始できます。



ところで、プロジェクトに画像を追加することを忘れないでください-それはソーシャルネットワーク上の投稿に添付されます。



ViewController.mを開き、viewDidLoadメソッドを見つけます。 ViewControllerがロードされたときに呼び出されるため、アプリケーションウィンドウにインターフェイス要素を「追加」します。 以下は、インターフェイス全体を作成するために使用されるコードです。



 - (void)viewDidLoad { shareImage = [UIImage imageNamed:[NSString stringWithFormat:@"48X48.jpg"]]; UIImageView *imageView = [[UIImageView alloc]initWithImage:shareImage]; imageView.frame = CGRectMake(138, 40, 48, 48); [self.view addSubview:imageView]; CGRect textFieldFrame = CGRectMake(20.0f, 100.0f, 280.0f, 31.0f); textField = [[UITextField alloc] initWithFrame:textFieldFrame]; textField.placeholder = @""; textField.backgroundColor = [UIColor whiteColor]; textField.textColor = [UIColor blackColor]; textField.font = [UIFont systemFontOfSize:14.0f]; textField.borderStyle = UITextBorderStyleRoundedRect; textField.clearButtonMode = UITextFieldViewModeWhileEditing; textField.returnKeyType = UIReturnKeyDone; textField.textAlignment = UITextAlignmentCenter; textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; textField.delegate = self; [self.view addSubview:textField]; UIButton *twitterButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [twitterButton addTarget:self action:@selector(twiShare:) forControlEvents:UIControlEventTouchDown]; [twitterButton setTitle:@"Share on Twitter" forState:UIControlStateNormal]; twitterButton.frame = CGRectMake(80.0, 170.0, 160.0, 40.0); [self.view addSubview:twitterButton]; UIButton *facebookButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [facebookButton addTarget:self action:@selector(fbShare:) forControlEvents:UIControlEventTouchDown]; [facebookButton setTitle:@"Share on Facebook" forState:UIControlStateNormal]; facebookButton.frame = CGRectMake(80.0, 240.0, 160.0, 40.0); [self.view addSubview:facebookButton]; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. }
      
      







これでプロジェクトをコンパイルできます。インターフェイスは次のようになります。

インターフェースの大きなスクリーンショット






いずれかのボタンを押そうとすると、アプリケーションがクラッシュします。 これは、twiShareメソッドとfbShareメソッドをまだ追加していないために発生します。これらのメソッドは、対応するボタンをクリックすると呼び出されます。 これを修正するには、これらのメソッドを作成する必要があります。 これは次のように行われます。

 -(void)twiShare:(id)sender{ } -(void)fbShare:(id)sender{ }
      
      







プロジェクトを再度コンパイルします。「ソーシャル」ボタンをクリックしてもプログラムはクラッシュしません。



テキスト入力ウィンドウをクリックするとキーボードが表示されますが、「完了」ボタンをクリックしてもキーボードは閉じません。 これを修正するには、キーボードを閉じるためのメソッドを追加する必要があります。 これは次のように行われます。

 - (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES; }
      
      







プロジェクトをもう一度コピーしてみてください。「完了」ボタンをクリックするとキーボードが閉じます。



インターフェイスの準備ができました。次に、最も興味深いことに進みましょう-ボタンの1つをクリックして共有を設定します。



最初に行うことは、Social.frameworkをプロジェクトに追加することです。 プロジェクトのFrameworksフォルダーを開き、追加されたフレームワークの1つを右クリックして、「Finderで表示」を選択します。 これで、すべてのフレームワークを含むフォルダーが開き、Social.frameworkを見つけてプロジェクトに追加するだけです。



Social.frameworkをViewControllerにインポートすることを忘れないでください。インポートしないと、アプリケーションはボタンに共有機能を追加した後にコンパイルエラーを生成します。 これは次のように行われます。

  #import "Social/Social.h"
      
      







次に、アプリケーションで共有ボタンを設定するだけです。 twiShareおよびfbShareメソッドで、次のコードを追加します。



  SLComposeViewController *composeController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter]; [composeController setInitialText:@"   iOS 6"]; [composeController addImage:shareImage]; [composeController addURL: [NSURL URLWithString: [NSString stringWithFormat:@"%@",textField.text]]]; [self presentViewController:composeController animated:YES completion:nil];
      
      







これで、共有ボタンをクリックすると、Twitterウィンドウが開きます。 「Facebookで共有」ボタンをクリックしたときにFacebookウィンドウを開くには、SLServiceTypeTwitterをSLServiceTypeFacebookに変更するだけです。 また、Twitterの中国語の類似版であるWeiboで共有の可能性を追加する場合は、SLServiceTypeSinaWeiboに変更することもできます。



プロジェクトをもう一度コンパイルしてみてください。すべてが機能するはずです。 ソーシャルネットワークのいずれかにログインしていない場合、対応するボタンをクリックすると、設定に入力されます。

エントリーオファーの大きなスクリーンショット






TwitterとFacebookの標準共有ウィンドウは次のようになります。

共有ウィンドウの大きなスクリーンショット








作業中のプロジェクトはこちらからダウンロードできます。



All Articles