在iOS13上共享带有自定义标题和远程图像的表格

时间:2019-11-11 12:11:03

标签: ios swift ios13 uiactivityviewcontroller ios-sharesheet

我正在提出一个共享表,用于在iOS13上共享链接。默认情况下,它将从共享URL提取工作表顶部的标题和图像,我想覆盖两者。我已经准备好标题了,但是图像很远,需要获取。最好将带有标题的共享表立即显示出来,然后再加载远程图像。

我在UIActivityItemSource中发现了一个新方法,似乎可以做到这一点,所以我创建了一个自定义UIActivityItemSource子类:

@objc class CustomURLItemSource: NSObject, UIActivityItemSource {

    ...

    func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
        return shareURL
    }

    func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
        return shareURL
    }

    @available(iOS 13.0, *)
    func activityViewControllerLinkMetadata(_: UIActivityViewController) -> LPLinkMetadata? {
        let metadata = LPLinkMetadata()
        metadata.originalURL = shareURL
        metadata.url = shareURL
        metadata.title = "My custom title"
        metadata.imageProvider = NSItemProvider(contentsOf: imageURL)
        return metadata
    }
}

使用该物品来源,将显示我的自定义标题,但标题旁边的图像将只是默认的野生动物园图标。 iOS如何期望我在此处提供图片或图片网址?

0 个答案:

没有答案