Reputation: 259
[![Screenshot of Instagram sharing error on iPhone][1]][1]I have an UIActivityViewController. It creates posts nicely for Mail and Twitter and includes the image as expected, but when selecting the Instagram icon, I get the alert "Couldn't share to Instagram. You can only share multiple photos and videos in the Instagram app" and then it hangs after clicking okay (with no errors in Xcode).
I'm a bit confused by the error message? I am testing on my iPhone.
let activityItem1 = ShareableText(title: name)
var activities:[Any] = [ activityItem1 ]
if let aScreenShot = myScreenshot() {
let activityItem2 = ShareableImage(image: aScreenShot)
activities.append(activityItem2)
}
let shareVC = UIActivityViewController(activityItems: activities, applicationActivities: nil)
shareVC.excludedActivityTypes = [ .assignToContact, .airDrop, .addToReadingList ]
self.present(shareVC, animated: true)
class ShareableImage:NSObject, UIActivityItemSource {
let image:UIImage
init(image:UIImage) {
self.image = image
}
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return image
}
func activityViewController(_ activityViewController: UIActivityViewController, thumbnailImageForActivityType activityType: UIActivity.ActivityType?, suggestedSize size: CGSize) -> UIImage? {
let image = UIImage(named: "Icon_CompletedShare")
return image
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
return image
}
}
class ShareableText:NSObject, UIActivityItemSource {
let title:String
init(title:String) {
self.title = title
}
func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
return title
}
func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivity.ActivityType?) -> String {
return title
}
func activityViewController(_ activityViewController: UIActivityViewController, thumbnailImageForActivityType activityType: UIActivity.ActivityType?, suggestedSize size: CGSize) -> UIImage? {
let image = UIImage(named: "Icon_CompletedShare")
return image
}
func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
return title
}
}```
[1]: https://i.sstatic.net/mfgj0.jpg
Upvotes: 5
Views: 727