objective-c 从我的 iOS 应用程序将图像分享到 Instagram

objective-c share image to Instagram from my iOS application

我花了很长时间搜索如何将照片从 iOS 应用程序分享到 Instagram。 Twitter 等其他社交媒体运行良好。我在 Google 上找到了很多资源,但没有用。 请我需要一些帮助来将 Instagram 共享按钮添加到已经具有 Twitter 共享按钮的 UIActivityViewController。 这是我的代码:

- (IBAction)shareBtnClicked {
    NSString *textToShare = @"Share \r";
    NSURL *url = newsC.URL;
    NSArray *objectsToShare = @[textToShare, url];
    UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

    //this array should add the activities that I don’t want
    NSArray *excludeActivities = @[ UIActivityTypePrint,
                                    UIActivityTypeAssignToContact,
                                    UIActivityTypePostToFlickr,
                                    UIActivityTypePostToVimeo
                                    ];

    activityVC.excludedActivityTypes = excludeActivities;
    [self presentViewController:activityVC animated:YES completion:nil];

提前致谢

您需要使用以下方法:

 -(void)instaPostImage
    {
        NSURL *myURL = [NSURL URLWithString:@"Your image url"];
        NSData * imageData = [[NSData alloc] initWithContentsOfURL:myURL];
        UIImage *imgShare = [[UIImage alloc] initWithData:imageData];

        NSURL *instagramURL = [NSURL URLWithString:@"instagram://app"];

        if([[UIApplication sharedApplication] canOpenURL:instagramURL]) //check for App is install or not
        {
            UIImage *imageToUse = imgShare;
            NSString *documentDirectory=[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
            NSString *saveImagePath=[documentDirectory stringByAppendingPathComponent:@"Image.png"];
            NSData *imageData=UIImagePNGRepresentation(imageToUse);
            [imageData writeToFile:saveImagePath atomically:YES];
            NSURL *imageURL=[NSURL fileURLWithPath:saveImagePath];
            self.documentController=[[UIDocumentInteractionController alloc]init];
            self.documentController = [UIDocumentInteractionController interactionControllerWithURL:imageURL];
            self.documentController.delegate = self;
            self.documentController.annotation = [NSDictionary dictionaryWithObjectsAndKeys:[NSString stringWithFormat:@"Testing"], @"InstagramCaption", nil];
            self.documentController.UTI = @"com.instagram.exclusivegram";
            UIViewController *vc = [UIApplication sharedApplication].keyWindow.rootViewController;
            [self.documentController presentOpenInMenuFromRect:CGRectMake(1, 1, 1, 1) inView:vc.view animated:YES];
    }
    else {
        DisplayAlertWithTitle(@"Instagram not found", @"")
    }
}

试试这个

- (IBAction)shareBtnClicked {
    NSString *textToShare = @"Share \r";
    NSURL *url = newsC.URL;

    NSData * imageData = [[NSData alloc] initWithContentsOfURL:url];
    UIImage *imgShare = [[UIImage alloc] initWithData:imageData];

   NSArray *objectsToShare = @[imgShare, textToShare];
   UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

   //this array should add the activities that I don’t want
   NSArray *excludeActivities = @[ UIActivityTypePrint,
                                UIActivityTypeAssignToContact,
                                UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo
                                ];

   activityVC.excludedActivityTypes = excludeActivities;
   [self presentViewController:activityVC animated:YES completion:nil];

}