Instagram、Facebook、Twitter、メール、メッセージなどのネイティブサービスでビデオとテキストを共有しようとしています。UIActivityViewControllerを使用してTwitter、Instagram、その他のサービスにビデオとテキストを共有する
コントローラにアクティビティアイテムとしてテキストの配列と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)
私の代わりとactivityItemsとして、Twitterだけが表示されることを使用しますが、ないのInstagram UIActivityItemSourceプロトコルを実装するクラスを作成した場合:
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がアクションシートに表示されない理由はわかりません。誰かがこれを解決する方法を知っていますか?
Instagramで共有しましたか?私は共有できません。 Instagramアイコンが私のために表示されていません –
Instagramが電話機にインストールされている場合は、テスト時にアイコン付きで表示されます。 – bughana