有没有办法与SLComposeViewController fb和twitter分享视频

时间:2015-06-17 01:52:58

标签: ios facebook swift twitter

我需要允许用户将视频和图片分享给fb和twitter。我最近发现了SLComposeViewController但似乎只有addImage方法而且没有addVideo方法。我真的很想使用SLComposeViewController来分享视频,因为我正处于艰难的时间限制之下。这是我到目前为止,它的工作原理,但没有addVideo方法:

var shareToTwitter : SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
    shareToTwitter.setInitialText("initial text")
    //shareToTwitter.addImage(UIImage(named: "32.png"))

    self.presentViewController(shareToTwitter, animated: true, completion: nil)

我真的很想拥有像Instagram一样的共享功能。这可能与SLComposeViewController一起使用吗?

3 个答案:

答案 0 :(得分:3)

SLComposeViewController现在仅用于共享文本和图像,它不能用于共享视频,如果Apple希望将来可以共享视频。

现在您可以使用Twitter的the uploading media new API分享视频到Twitter。

我做了一个方便的课程,以便更轻松地发布视频到Twitter。

请检查:https://github.com/liu044100/SocialVideoHelper

你只需要调用这个类方法。

+(void)uploadTwitterVideo:(NSData*)videoData account:(ACAccount*)account withCompletion:(dispatch_block_t)completion;

希望它可以解决您的问题。

最诚挚的问候。

答案 1 :(得分:1)

私有方法但有效。您还可以通过默认的UIActivityViewController将视频分享到fb。

@import Foundation;
@import Social;
@import MobileCoreServices;

@interface SLComposeViewController (FBMP4Video)

- (BOOL)addVideoURL:(NSURL *)url;

@end

@implementation SLComposeViewController (FBMP4Video)

- (BOOL)addVideoURL:(NSURL *)url {
    NSItemProvider *itemProvider = [[NSItemProvider alloc] initWithItem:url typeIdentifier:(NSString *)kUTTypeMPEG4];

    NSExtensionItem *extensionItem = [NSExtensionItem new];
    extensionItem.attachments = [NSArray arrayWithObject:itemProvider];

    return [self performSelector:@selector(addExtensionItem:) withObject:extensionItem];
}

@end

答案 2 :(得分:-1)

对于swift:

shareToTwitter.setInitialText("This is my video")
shareToTwitter.addURL(NSURL(string: "ur video link"))//add your video url to it
self.presentViewController(shareToTwitter, animated: true, completion: nil)

希望它有所帮助,快乐的编码:)