Video und Text auf Twitter, Instagram und anderen Diensten mit UIActivityViewController @ teil

Ich versuche, ein Video und einen Text auf Instagram, Facebook, Twitter und den systemeigenen Diensten wie E-Mail, Nachrichten usw. zu teilen. Ich kann nicht herausfinden, wie Instagram und Twitter im Aktionsblatt zum Teilen angezeigt werden :

Wenn ich eine Reihe von Texten und eine URL als Aktivitätselemente in den Controller übergebe, wird nur Instagram angezeigt, nicht jedoch 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)

Wenn ich eine Klasse erstelle, die stattdessen das UIActivityItemSource-Protokoll implementiert und dieses als activityItems verwendet, wird nur Twitter angezeigt, nicht jedoch 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
    }
}

und dann ersetzen Sie die Elemente durch diese:

items = [VideoActivityItemSource(url: url)]

Ich habe keine Ahnung, warum Twitter in diesem Fall nicht im Aktionsblatt angezeigt wird. Hat jemand eine Idee, wie man das löst?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage