iOS 13 分享 Sheet:更改 subtitle/item 描述
iOS 13 Share Sheet: Changing subtitle/item description
新的 iOS 13 分享 sheet 提供了一个很好的 header 来显示正在分享的项目的上下文。
虽然我还没弄清楚如何更改项目描述。我使用了 activityViewControllerLinkMetadata 函数,它部分提供了我需要的东西(更改标题和图标),但是负责显示项目描述的原始 URL 只接受 URL 并且每个字符串都必须是如果我们从字符串创建 URL(例如,space 到 %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
}
App Store 和 Music 应用程序可以做到这一点 - 有人想出来了吗?
这真的很傻,但这是怎么做的。
metadata.originalURL = URL(fileURLWithPath: "whatever description you want to put")
请注意,您不必自己创建 file/folder。
新的 iOS 13 分享 sheet 提供了一个很好的 header 来显示正在分享的项目的上下文。
虽然我还没弄清楚如何更改项目描述。我使用了 activityViewControllerLinkMetadata 函数,它部分提供了我需要的东西(更改标题和图标),但是负责显示项目描述的原始 URL 只接受 URL 并且每个字符串都必须是如果我们从字符串创建 URL(例如,space 到 %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
}
App Store 和 Music 应用程序可以做到这一点 - 有人想出来了吗?
这真的很傻,但这是怎么做的。
metadata.originalURL = URL(fileURLWithPath: "whatever description you want to put")
请注意,您不必自己创建 file/folder。