2016-11-25 8 views
0

Я долгое время искал, как обмениваться фотографиями с приложениями iOS на Instagram. Другие социальные сети, такие как Twitter, работают нормально. Я нашел много ресурсов в Google, но он не работает. Пожалуйста, мне нужна помощь, чтобы добавить кнопку общего доступа к Instagram в UIActivityViewController, у которой уже есть кнопка с Поделиться на Twitter. Вот мой код:Объект-c обмениваться изображением с Instagram из моего приложения iOS

- (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]; 

Заранее спасибо

ответ

2

Вы должны использовать метод ниже:

-(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", @"") 
    } 
} 
+0

Спасибо, что отлично работал с твиттером но никакая кнопка обмена в Facebook, хотя я вошел в свою учетную запись на Facebook. –

0

Try This

- (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]; 

}

+1

Ничего не изменилось, так или иначе спасибо –