Share content using the system share sheet - SwiftUI
iOS 16+
SwiftUI’s ShareLink
view makes it easy to share any kind of data from your app, as long as it conforms to the Transferable
protocol.
By default you get a simple “Share” label with the appropriate icon, but you can also provide your own title text, or an entirely custom label:
let link = URL(string: "https://www.hackingwithswift.com")!
VStack(spacing: 20) {
ShareLink(item: link)
ShareLink("Learn Swift here", item: link)
ShareLink(item: link) {
Label("Learn Swift here", systemImage: "swift")
}
}
If you want to attach some extra text to the content you’re sharing, there’s a message
parameter to do just that:
let link = URL(string: "https://www.hackingwithswift.com")!
ShareLink(item: link, message: Text("Learn Swift here!"))
For simple URLs the system is able to generate a preview on our behalf, but you can also provide a custom preview with some text and an image of your choosing, like this:
let link = URL(string: "https://www.admin.ch")!
VStack {
ShareLink(
item: link,
preview: SharePreview(
"Switzerland's flag: it's a big plus.",
image: Image(systemName: "plus")
)
)
}