iOS 13 共享表:更改副标题/项目描述

Jag*_*eon 5 ios uiactivityviewcontroller ios-sharesheet ios13

新的 iOS 13 共享表提供了一个很好的标题,显示了正在共享的项目的上下文。

在此处输入图片说明

我一直无法弄清楚如何更改项目描述。我使用了 activityViewControllerLinkMetadata 函数,它部分地给了我我需要的东西(更改标题和图标),但是负责显示项目描述的 originalURL 只接受 URL,如果我们从字符串创建 URL,则必须对每个字符串进行转义(空间到 %20,例如)。

@available(iOS 13.0, *)
        func activityViewControllerLinkMetadata(_: UIActivityViewController) -> LPLinkMetadata? {
            let metadata = LPLinkMetadata()
            metadata.title = song.title

            if let data = song.artistNames.data(using: .utf8) {
                let url = URL(dataRepresentation: data, relativeTo: nil)

                metadata.originalURL = URL(dataRepresentation: data, relativeTo: nil)

                if let image = image {
                    metadata.iconProvider = NSItemProvider(object: image)
                }
            }
            return metadata
        }
Run Code Online (Sandbox Code Playgroud)

App Store 和音乐应用程序可以做到这一点 - 有没有人想到这一点?

Jag*_*eon 8

这真的很愚蠢,但这是如何做到的。

metadata.originalURL = URL(fileURLWithPath: "whatever description you want to put")
Run Code Online (Sandbox Code Playgroud)

请注意,您不必创建文件/文件夹本身。