How to open web links in Safari
About 2 min
How to open web links in Safari 관련
SwiftUI by Example
Back to Home
How to open web links in Safari | SwiftUI by Example
How to open web links in Safari
Updated for Xcode 15
SwiftUI gives us a dedicated Link
view that looks like a button but opens a URL in Safari when pressed. It's easy enough to use – just give it a title for the button, plus a destination URL to show, like this:
Link("Learn SwiftUI", destination: URL(string: "https://hackingwithswift.com/quick-start/swiftui")!)
As it's just a text link, you can customize it with a font, color, and more:
Link("Visit Apple", destination: URL(string: "https://www.apple.com")!)
.font(.title)
.foregroundStyle(.red)

And if you'd rather create your own view rather than just use text, you can do that too:
Link(destination: URL(string: "https://www.apple.com")!) {
Image(systemName: "link.circle.fill")
.font(.largeTitle)
}

Alternatively, you can open a URL from code by using the openURL
environment key, like this:
struct ContentView: View {
@Environment(\.openURL) var openURL
var body: some View {
Button("Visit Apple") {
openURL(URL(string: "https://www.apple.com")!)
}
}
}

Similar solutions…
How to customize the way links are opened | SwiftUI by Example
How to customize the way links are opened
How to open a new window | SwiftUI by Example
How to open a new window
How to add advanced text styling using AttributedString | SwiftUI by Example
How to add advanced text styling using AttributedString
How to render Markdown content in text | SwiftUI by Example
How to render Markdown content in text
All SwiftUI property wrappers explained and compared | SwiftUI by Example
All SwiftUI property wrappers explained and compared