如何使用iOS中的UIActivityViewController将视频从我的应用程序共享到YouTube和Instagram应用程序?

如何使用iOS中的UIActivityViewController将视频从我的应用程序共享到YouTube和Instagram应用程序?

问题描述:

我想分享视频从我的应用程序到youtubeinstagram使用UIActivityViewController。但是我得到的输出像下面提到的图像。如何使用iOS中的UIActivityViewController将视频从我的应用程序共享到YouTube和Instagram应用程序?

enter image description here

但我的期望是,将YouTube和Instagram的应用归入此UIActivityViewController为影片。像下面提到的图像。此图像取自设备相册。

enter image description here

我的代码是:

- (IBAction)ShareVideo:(id)sender 
{ 
    NSString *[email protected]"Video Sharing "; 
    NSString *[email protected]"India"; 
    NSString *textObject = @"Video Sharing Test"; 
    NSData *videoData = [NSData dataWithContentsOfURL:movieURL]; //movieURL contains the video taken from photoAlbum 

    NSArray *objectsToShare = @[mySubject,textLocationA,textObject,videoData,movieURL]; 

    UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; 

    // Exclude all activities except AirDrop. 
    NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook, 
            UIActivityTypePostToWeibo, 
            UIActivityTypeMessage, UIActivityTypeMail, 
            UIActivityTypePrint, UIActivityTypeCopyToPasteboard, 
            UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll, 
            UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr, 
            UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo]; 
    controller.excludedActivityTypes = excludedActivities; 

    //-- define the activity view completion handler 
    controller.completionHandler = ^(NSString *activityType, BOOL completed){ 
     NSLog(@"Activity Type selected: %@", activityType); 
     if (completed) { 
      NSLog(@"Selected activity was performed."); 
     } else { 
      if (activityType == NULL) { 
       NSLog(@"User dismissed the view controller without making a selection."); 
      } else { 
       NSLog(@"Activity was not performed."); 
      } 
     } 
    }; 

    //-- define activity to be excluded (if any) 
    controller.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypeAssignToContact, nil]; 
    [controller setCompletionHandler:^(NSString *activityType, BOOL completed) { 
     if ([activityType isEqualToString:UIActivityTypePostToFacebook]) { 
      if (completed) 
      { 
       NSLog(@"facebook"); 

      } 

     } 
     else if ([activityType isEqualToString:UIActivityTypeSaveToCameraRoll]) { 
      if (completed) 
      { 
       NSLog(@"Video Saved"); 
      } 
     } 

     else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) { 
      if (completed) 
      { 
       NSLog(@"twittter"); 
      } 

     } 
    }]; 

    // Present the controller 
    [self presentViewController:controller animated:YES completion:nil]; 
} 

请给我一些想法来处理这个过程。

+0

@ Kramnik0 - 看到这个http://*.com/questions/20628620/youtube-and-uiactivityview-on-ios – Sabs

  1. 您必须添加自己的自定义UIActivity YouTube的:How can I create a custom UIActivity in iOS?
  2. 添加共享对话框。您可以使用此库:https://github.com/romaonthego/REComposeViewController
  3. 使用API​​进行共享。感谢@UserAwesome:http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Uploading_Videos

OR

你可以尝试找到现有的组件它。 :)

+0

感谢您的回复。等待我会检查并让你知道。 – Sabs

+0

@Sabs搜索github和其他人是你的方式 – kaspartus

要在UIActivityViewController中添加YouTube,您必须自行定制UIActivityViewController。请参阅How can I create a custom UIActivity in iOS?我在UIActivityViewController中添加了一个自定义Youtube图标,并启用将视频上传到Youtube。

如何将视频上传到YouTube,您可以阅读这个https://nsrover.wordpress.com/2014/04/23/youtube-api-on-ios/我测试过了。有用。