How to open a url in system default browser by using Swift as programming language and OSX as plattform.
I found a lot with UIApplication like
UIAppl
For MacOS, you can use this:
let url = URL(string: "https://www.stackoverflow.com")!
NSWorkspace.sharedWorkspace().openURL(url))
For iOS, you can use the following:
let url = NSURL(string: "https://google.com")!
UIApplication.sharedApplication().openURL(url)
You have to unwrap NSURL.
xCode 9 update
let url = URL(string: "https://www.google.com")!
UIApplication.shared.open(url, options: [:], completionHandler: nil)
For Swift 5, Xcode 10 and MAC OS:
NSWorkspace.shared.open(NSURL(string: "http://www.lichess.org")! as URL)
MacOS Xcode 10 Swift 4.2 update
NSWorkspace.shared.open(URL(string: "https://www.google.com")!)
When using Swift 3, you can open a webpage in the default browser using the following:
NSWorkspace.shared().open(NSURL(string: "https://google.com")! as URL)
In the accepted answer above, you can also check a URL using Swift 3 by inputting the following:
if let checkURL = NSURL(string: "https://google.com") {
if NSWorkspace.shared().open(checkURL as URL) {
print("URL Successfully Opened")
}
} else {
print("Invalid URL")
}
I hope that this information helps whomever it applies to.
Just a bonus. If you want to open a URL in a specific browser(even other client who can handle that URL), here is the Swift 3 code tested on Xcode 8.2.1 and macOS 10.12.2.
/// appId: `nil` use the default HTTP client, or set what you want, e.g. Safari `com.apple.Safari`
func open(url: URL, appId: String? = nil) -> Bool {
return NSWorkspace.shared().open(
[url],
withAppBundleIdentifier: appId,
options: NSWorkspaceLaunchOptions.default,
additionalEventParamDescriptor: nil,
launchIdentifiers: nil
)
}