Ответ 1
Swift 3 или позже
import Cocoa
let url = URL(string: "https://www.google.com")!
if NSWorkspace.shared.open(url) {
print("default browser was successfully opened")
}
Как открыть URL-адрес в системном браузере по умолчанию, используя Swift как язык программирования и OSX в виде plattform.
Я нашел много с помощью UIApplication, например
UIApplication.sharedApplication().openURL(NSURL(string: object.url))
но это работает только на iOS, а не на OSX
И Launch Services, я нашел, нет примеров для быстрого и много устарел для OSX 10.10
Любая помощь приветствуется - спасибо.
Swift 3 или позже
import Cocoa
let url = URL(string: "https://www.google.com")!
if NSWorkspace.shared.open(url) {
print("default browser was successfully opened")
}
Для MacOS вы можете использовать это:
let url = URL(string: "https://www.stackoverflow.com")!
NSWorkspace.sharedWorkspace().openURL(url))
Для iOS вы можете использовать следующее:
let url = NSURL(string: "https://google.com")!
UIApplication.sharedApplication().openURL(url)
Вы должны развернуть NSURL.
MacOS:
NSWorkspace.sharedWorkspace().openURL(NSURL(string: "https://google.com")!)
IOS:
UIApplication.sharedApplication().openURL(NSURL(string: "https://google.com")!)
При использовании Swift 3 вы можете открыть веб-страницу в браузере по умолчанию, используя следующее:
NSWorkspace.shared().open(NSURL(string: "https://google.com")! as URL)
В принятом ответе выше вы также можете проверить URL-адрес с помощью Swift 3, введя следующее:
if let checkURL = NSURL(string: "https://google.com") {
if NSWorkspace.shared().open(checkURL as URL) {
print("URL Successfully Opened")
}
} else {
print("Invalid URL")
}
Я надеюсь, что эта информация поможет кому бы то ни было.
Обновление xCode 9
let url = URL(string: "https://www.google.com")!
UIApplication.shared.open(url, options: [:], completionHandler: nil)
Просто бонус. Если вы хотите открыть URL-адрес в определенном браузере (даже для другого клиента, который может обрабатывать этот URL-адрес), вот код Swift 3, протестированный на Xcode 8.2.1 и 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
)
}
Для Swift 5, Xcode 10 и MAC OS:
NSWorkspace.shared.open(NSURL(string: "http://www.lichess.org")! as URL)
Обновление MacOS Xcode 10 Swift 4.2
NSWorkspace.shared.open(URL(string: "https://www.google.com")!)
Swift 4
let url = NSURL(string: "https://google.com")! UIApplication.shared.openURL(url as URL)
Лучше всего безопасно развернуть необязательные переменные:
guard let url = URL(string: "https://www.google.com") else {
return
}
NSWorkspace.shared.open(url)
Для iOS лучше всего проверять все необходимые параметры
if let url = URL(string: "https://somurl.com/xyz"),
UIApplication.shared.canOpenURL(url)
{
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}