-1

In my application want to handle click of UIActivityTypePostToFacebook. So how to achieve this click event. Please check my code : #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

     NSString *aText = @"Google";
     UIImage *aPhoto = [UIImage imageNamed:@"3.png"];
     NSURL *website = [NSURL URLWithString:@"http://www.google.com/"];



     NSArray *objectsToShare = @[aText, aPhoto, website];

     NSArray * applicationActivities = nil;

     UIActivityViewController * activityViewController = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:applicationActivities];

     activityViewController.excludedActivityTypes = @[
                                                      UIActivityTypePostToWeibo,
                                                      UIActivityTypeAssignToContact,
                                                      UIActivityTypeAirDrop,
                                                      UIActivityTypeAddToReadingList,
                                                      UIActivityTypeCopyToPasteboard,
                                                      UIActivityTypeSaveToCameraRoll,
                                                      UIActivityTypePrint,
                                                      UIActivityTypePostToFlickr,
                                                      UIActivityTypePostToTencentWeibo,

                                                      // Whatever you want to exclude
                                                      ];

     if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")){

         activityViewController.popoverPresentationController.sourceView =
        self.view;
     }
     if(isiPhone)
     {
        [self presentViewController:activityViewController animated:YES completion:nil];

     }
     else{
         UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
         [popup presentPopoverFromRect:CGRectMake(0, screenheight, 768, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
     }
Monika Patel
  • 2,287
  • 3
  • 20
  • 45

1 Answers1

1
activityViewController.excludedActivityTypes = @[
                                                  UIActivityTypePostToWeibo,
                                                  UIActivityTypeAssignToContact,
                                                  UIActivityTypeAirDrop,
                                                  UIActivityTypeAddToReadingList,
                                                  UIActivityTypeCopyToPasteboard,
                                                  UIActivityTypeSaveToCameraRoll,
                                                  UIActivityTypePrint,
                                                  UIActivityTypePostToFlickr,
                                                  UIActivityTypePostToTencentWeibo,


UIActivityTypePostToFacebook, UIActivityTypePostToTwitter, 

                                                  // Whatever you want to exclude
                                                  ];  


  if(isiPhone)
 {
    [self presentViewController:activityViewController animated:YES completion:nil];

 }
 else{
     UIPopoverController *popup = [[UIPopoverController alloc] initWithContentViewController:activityViewController];
     [popup presentPopoverFromRect:CGRectMake(0, screenheight, 768, 0)inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
 }


[activityViewController setCompletionHandler:^(NSString *act, BOOL done)
 {
 NSString *ServiceMsg = nil;
 if ( [act isEqualToString:UIActivityTypeMail] )           ServiceMsg = @"Mail sended!";
 if ( [act isEqualToString:UIActivityTypePostToTwitter] )  ServiceMsg = @"Post on twitter, ok!";
 if ( [act isEqualToString:UIActivityTypePostToFacebook] ) ServiceMsg = @"Post on facebook, ok!";
 if ( [act isEqualToString:UIActivityTypeMessage] )        ServiceMsg = @"SMS sended!";
 if ( done )
 {
   UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:ServiceMsg message:@"" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil];
   [Alert show];

 }
 }];

Choice-2

if above choice not working well try choice 2 , add UIActivityItemSource in your .h file

then call the following method in your .m file

 - (id) activityViewController:(UIActivityViewController *)activityViewController
      itemForActivityType:(NSString *)activityType
{
 if ( [activityType isEqualToString:UIActivityTypePostToTwitter] )
return @"This is a #twitter post!";
if ( [activityType isEqualToString:UIActivityTypePostToFacebook] )
return @"This is a facebook post!";
 if ( [activityType isEqualToString:UIActivityTypeMessage] )
return @"SMS message text";
 if ( [activityType isEqualToString:UIActivityTypeMail] )
return @"Email text here!";
 if ( [activityType isEqualToString:@"it.albertopasca.myApp"] )
return @"OpenMyapp custom text";
 return nil;
 }
Anbu.Karthik
  • 82,064
  • 23
  • 174
  • 143
  • 2
    see this link also http://www.albertopasca.it/whiletrue/2012/10/objective-c-custom-uiactivityviewcontroller-icons-text/ – Anbu.Karthik Sep 05 '15 at 12:13
  • hey Anbu.Karthik .. how to stop open default functionallity of facebook when open UIActivitycontroller – Monika Patel Sep 07 '15 at 07:34
  • @Stela -- check the updated answer , I added the **activityViewController.excludedActivityTypes = @[UIActivityTypePostToFacebook, UIActivityTypePostToTwitter];** – Anbu.Karthik Sep 07 '15 at 07:41
  • i want to Facebook functionality.. but not for sharing.. i used this functionality for invite friend from facebook – Monika Patel Sep 07 '15 at 07:44
  • in here you can share anything , but invite the friend you need to get the object ID for friends , may be not possible – Anbu.Karthik Sep 07 '15 at 07:46
  • i done invite friend functionality but .. when successfully invite friend from facebook and when back to my application behind that default sharing of uiactivitycontroller is opend.. so i want to dismiss that facebook sharing pop up – Monika Patel Sep 07 '15 at 07:48
  • i want when user click on facebook button on uiactivitycontroller that time user redirect on his/her facebook app and invite his/her friend .. i done this fuctionality but – Monika Patel Sep 07 '15 at 07:51
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/88982/discussion-between-stela-and-anbu-karthik). – Monika Patel Sep 07 '15 at 07:53
  • @Stela -- my answer is working or not , if my answer is not worth able I delete my answer – Anbu.Karthik Sep 07 '15 at 10:04
  • @Anbu.karthik correct url: https://www.albertopasca.it/whiletrue/objective-c-custom-uiactivityviewcontroller-icons-and-text/ – elp Sep 18 '18 at 16:08