Share content using the system share sheet - SwiftUI

Sep 22, 2022 1 min read
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")
        )
    )
}
Great! Next, complete checkout for full access to ArturoFM.
Welcome back! You've successfully signed in.
You've successfully subscribed to ArturoFM.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info has been updated.
Your billing was not updated.