我使用UIActivityViewController
共享文本和圖像。圖片來自activityImage
,這是一個UIImage()
。自定義文本從activityText()
這是從UIActivityItemSource
協議返回。使用'UIActivityItemSource`協議無法與Instagram共享
問題在於,Instagram在某些條件下僅在UIActivityViewController
中可見。
要summerize下面的測試:
Instagram的是僅可見在
UIActivityViewController
爲activityItems: [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 ""
}
}
謝謝@Olivier品牌,我會檢查一下,並給它一個去。 – user4806509
你能解釋一下嗎?! –