根据所选活动共享不同的内容 - UIActivityController



目前,每当用户想要使用UIActivityController共享图像时,我都会发送图像和文本。 这在电子邮件和gmail上工作正常,但是对于whatsapp或Skype来说它被搞砸了(仅发送文本(。 因此,如果用户选择活动作为whatsapp或Skype,我想做的是共享图像URL和文本。这可能吗?

我搜索了这个问题,发现你应该子类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)

此外,您只能自定义那些由Apple公开供开发人员使用的UIActivityType。有关UIActivityTypes请参阅:https://developer.apple.com/documentation/uikit/uiactivitytype

相关内容

  • 没有找到相关文章

最新更新