I use the following code in my iOS app to use Instagram iPhone hooks to post a photo to Instagram. I only want the “Open In…” menu to have Instagram app, no other apps. But in my case Camera+ also shows up. How can I restrict to Instagram?
Also, can I directly open Instagram instead of showing Open In menu?
NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"];
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
//imageToUpload is a file path with .ig file extension
self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:imageToUpload]];
self.documentInteractionController.UTI = @"com.instagram.photo";
self.documentInteractionController.annotation = [NSDictionary dictionaryWithObject:@"my caption" forKey:@"InstagramCaption"];
[self.documentInteractionController presentOpenInMenuFromBarButtonItem:self.exportBarButtonItem animated:YES];
}
To answer only your first question: you may probably be able to restrict the “Open in …” menu to just showing Instagram for your device (by deleting the Camera+ App, for example), but you won’t be able to restrict users that install your app to their devices. And that’s because the iPhone recognizes which applications are able to open a specific kind of files and it automatically show every one that does.