【发布时间】:2016-10-29 11:17:49
【问题描述】:
我正在尝试在 Instagram、Facebook、Twitter 和本地服务(如邮件、消息等)上分享视频和文本...。我不知道如何让 Instagram 和 Twitter 同时出现在分享操作表:
如果我将一组文本和一个 URL 作为活动项传递给控制器,则只会显示 Instagram,但不会显示 Twitter。
let url: NSURL = NSURL() // a url that directs to a video
let items: [AnyObject] = ["Check out this video", url]
let shareable = UIActivityViewController(activityItems: items, applicationActivities: nil)
controller.presentViewController(shareable,
animated: true,
completion: nil)
如果我创建一个实现 UIActivityItemSource 协议的类并将其用作 activityItems,则只会显示 Twitter,但不会显示 Instagram:
class VideoActivityItemSource: NSObject, UIActivityItemSource {
private let videoUrl: NSURL
private let shareText = "View the full video here!"
init(url: NSURL) {
self.videoUrl = url
}
func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType {
case UIActivityTypePostToFacebook:
return self.videoUrl
case UIActivityTypeMail:
return self.videoUrl
default:
return ["text": self.shareText, "url": self.videoUrl]
}
}
func activityViewController(activityViewController: UIActivityViewController, subjectForActivityType activityType: String?) -> String {
return "Hey check this new cool app!!!"
}
func activityViewController(activityViewController: UIActivityViewController, thumbnailImageForActivityType activityType: String?, suggestedSize size: CGSize) -> UIImage? {
return nil
}
}
然后用这个替换项目:
items = [VideoActivityItemSource(url: url)]
我不知道为什么在这种情况下 Twitter 不会出现在操作表中。有人知道如何解决这个问题吗?
【问题讨论】:
标签: swift video twitter instagram uiactivityviewcontroller