我使用UIActivityViewController
. 图像来自activityImage
哪个UIImage()
. 自定义文本是从协议activityText()
返回的UIActivityItemSource
。
问题是,Instagram 仅UIActivityViewController
在特定条件下可见。
总结以下测试:
Instagram仅在
UIActivityViewController
foractivityItems: [activityImage]
和activityItems: [activityImage, NSNull()]
即使返回的协议值为, , ,Instagram也会被隐藏。
activityItems: [activityImage, activityText()]
UIActivityItemSource
""
nil
NSNull()
问题是UIActivityItemSource
需要调用协议,以便可以分别管理不同的共享平台。
问题:
UIActivityItemSource
调用协议时如何分享到 Instagram ?有什么替代方法
""
,我可以在调用协议时尝试?nil
NSNull()
UIActivityItemSource
代码:
class activityText: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
switch activityType {
case UIActivityTypeMessage:
return "Special text when sharing to Messages."
default:
return ""
}
}
}
func shareEverwhere() {
var activityImage: UIImage()
let activity = UIActivityViewController(activityItems: [activityImage, activityText()], applicationActivities: nil)
self.presentViewController(activity, animated: true, completion: nil)
}
测试:
Instagram在_UIActivityViewController
let activity = UIActivityViewController(activityItems: [activityImage], applicationActivities: nil)
或者
let activity = UIActivityViewController(activityItems: [activityImage, NSNull()], applicationActivities: nil)
Instagram隐藏在UIActivityViewController
let activity = UIActivityViewController(activityItems: [activityImage, ""], applicationActivities: nil)
或者
let activity = UIActivityViewController(activityItems: [activityImage, activityText()], applicationActivities: nil)
或者
let activity = UIActivityViewController(activityItems: [activityImage, activityText()], applicationActivities: nil)
class activityText: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
return NSNull()
}
}
或者
let activity = UIActivityViewController(activityItems: [activityImage, activityText()], applicationActivities: nil)
class activityText: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
return nil
}
}
或者
let activity = UIActivityViewController(activityItems: [activityImage, activityText()], applicationActivities: nil)
class activityText: NSObject, UIActivityItemSource {
@objc func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return ""
}
@objc func activityViewController(activityViewController: UIActivityViewController, itemForActivityType activityType: String) -> AnyObject? {
return ""
}
}