iOS - Twitter e Facebook

Twitter è stato integrato in iOS 5.0 e Facebook è stato integrato in iOS 6.0. Il nostro tutorial si concentra sull'utilizzo delle classi fornite da Apple e gli obiettivi di distribuzione per Twitter e Facebook sono rispettivamente iOS 5.0 e iOS 6.0.

Passaggi coinvolti

Step 1 - Crea una semplice applicazione basata sulla visualizzazione.

Step 2 - Seleziona il file di progetto, quindi seleziona targets e poi aggiungi Social.framework e Accounts.framework in choose frameworks.

Step 3 - Aggiungi due pulsanti denominati facebookPost e twitterPost e crea ibActions per loro.

Step 4 - Aggiorna ViewController.h come segue -

#import <Social/Social.h>
#import <Accounts/Accounts.h>
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

-(IBAction)twitterPost:(id)sender;
-(IBAction)facebookPost:(id)sender;

@end

Step 5 - Aggiorna ViewController.m come segue -

#import "ViewController.h"

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
   [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
   [super didReceiveMemoryWarning];
   // Dispose of any resources that can be recreated.
}

-(IBAction)facebookPost:(id)sender {
   SLComposeViewController *controller = [SLComposeViewController 
   composeViewControllerForServiceType:SLServiceTypeFacebook];
   SLComposeViewControllerCompletionHandler myBlock = 
      ^(SLComposeViewControllerResult result){
      
      if (result == SLComposeViewControllerResultCancelled) {
         NSLog(@"Cancelled");
      } else {
         NSLog(@"Done");
      }
      [controller dismissViewControllerAnimated:YES completion:nil];
   };
   controller.completionHandler = myBlock;

   //Adding the Text to the facebook post value from iOS
   [controller setInitialText:@"My test post"];

   //Adding the URL to the facebook post value from iOS
   [controller addURL:[NSURL URLWithString:@"http://www.test.com"]];

   //Adding the Text to the facebook post value from iOS
   [self presentViewController:controller animated:YES completion:nil];
}

-(IBAction)twitterPost:(id)sender {
   SLComposeViewController *tweetSheet = [SLComposeViewController 
   composeViewControllerForServiceType:SLServiceTypeTwitter];
   [tweetSheet setInitialText:@"My test tweet"];
   [self presentModalViewController:tweetSheet animated:YES];
}
@end

Produzione

Quando eseguiamo l'applicazione e facciamo clic su facebookPost, otterremo il seguente output:

Quando facciamo clic su twitterPost, otterremo il seguente output: