目前,每当用户想要使用 UIActivityController
共享图像时,我都会发送图像和文本。
这在电子邮件和 gmail 上工作得很好,但在 Whatsapp 或 Skype 上却很困惑(仅发送文本)。
所以我想做的是,如果用户选择 Whatsapp 或 Skype 事件,则共享图像 url 和文本。这可能吗?
我搜索了这个问题,发现你应该子类 UIActivityItemProvider
并实现我所做的 UIActivityItemSource
的方法,但我无法获取回调实现的方法。
我已经实现了这些方法
activityViewControllerPlaceholderItem:
和 activityViewController:itemForActivityType:
但我没有收到回电。
最佳答案
只需创建 UIActivityItemProvider
的子类并覆盖 item
属性即可提供自定义事件项
,即
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)
此外,您只能自定义由 Apple
公开供开发人员使用的那些 UIActivityType
。对于UIActivityTypes
,请参阅:https://developer.apple.com/documentation/uikit/uiactivitytype
关于ios - 根据选定的事件共享不同的内容 - UIActivityController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45611696/