1

I use to use UIDocumentInteractionController and UIActivityViewController to share data with a special UTI.

However, when other app use Share Extension, there will may options when share interface popup, such as copy tp xxx and import to xxx.

How can i disable those options or is there any other way can share data to Specified app which i can control.

//======= my code is like this:

UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[itemUrl] applicationActivities:nil];
activity.excludedActivityTypes = @[UIActivityTypePostToFacebook, UIActivityTypePostToFacebook,UIActivityTypePostToWeibo,
                                   UIActivityTypeMessage, UIActivityTypeMail, UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                   UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, UIActivityTypeAddToReadingList,
                                   UIActivityTypePostToFlickr, UIActivityTypePostToFlickr, UIActivityTypePostToFlickr,
                                   UIActivityTypeAirDrop];
[self presentViewController:activity animated:YES completion:NULL];
waitianlou
  • 563
  • 3
  • 15

2 Answers2

0

Create a Array and add types which don't want to show to user, like this

NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                                       UIActivityTypePrint,
                                       UIActivityTypeAssignToContact,
                                       UIActivityTypeSaveToCameraRoll,
                                       UIActivityTypeAddToReadingList,
                                       UIActivityTypePostToFlickr,
                                       UIActivityTypePostToVimeo,
                                       UIActivityTypeCopyToPasteboard];

Create a instance of UIActivityViewController
And set following propery
activityViewController.excludedActivityTypes = excludeActivities
Rishi
  • 167
  • 1
  • 7
  • already do this,it can not prevent those app who has ``Share Extension``, it still show ``copy to xxx`` and ``import to xxx`` – waitianlou Dec 06 '16 at 08:47
0

I found out if you share as NSURL, you will get copy to xxx or import to xxx, but if you share as UIImage, you will not get that.

will show import to xxx

avc = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:fileURL, nil] applicationActivities:nil];
[self presentViewController:avc animated:YES completion:nil];

will not show

UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:fileURL]];
avc = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:image, nil] applicationActivities:nil];
[self presentViewController:avc animated:YES completion:nil];
iceboxi
  • 49
  • 7