根据所选活动共享不同内容 - UIActivityController
问题描述:
当用户想要使用UIActivityController
共享图像时,我正在发送图像和文本。 这适用于电子邮件和Gmail,但它会搞砸whatsapp或Skype(只发送文本)。 所以我想要做的就是分享图片网址和文字,如果用户选择作为whatsapp或Skype的活动。这可能吗?根据所选活动共享不同内容 - UIActivityController
我搜索了这个问题,发现你应该分类UIActivityItemProvider
,并实现我所做的UIActivityItemSource
的方法,但我无法获得实现方法的回调。
我已经实现了这些方法 activityViewControllerPlaceholderItem:
和activityViewController:itemForActivityType:
,但我没有收到回调。
答
只是使UIActivityItemProvider
一个子类,并覆盖item
财产,为自activity items
,即
class CustomActivityItemProvider: UIActivityItemProvider
{
override var item: Any{
switch self.activityType!
{
case UIActivityType.postToFacebook:
return "Hello"
default:
return "Whatever"
}
}
}
使用它:
let activityItem = CustomActivityItemProvider(placeholderItem: "")
let activityViewController = UIActivityViewController(activityItems: [activityItem], applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
此外,你可以自定义只有那些UIActivityType
,被暴露由Apple
供开发人员使用。对于UIActivityTypes
参考:https://developer.apple.com/documentation/uikit/uiactivitytype
完美和“迅速”的答案。所以显然我不需要重写协议方法,如果我想传递基于活动类型的自定义数据。 –
Sure..Enjoy .. :) – PGDev
你想要改变什么? – PGDev