OSX Swift open URL в браузере по умолчанию

Как открыть url-адрес в браузере по умолчанию, используя Swift в качестве языка программирования и OSX в качестве plattform.

Я нашел много с UIApplication как

UIApplication.sharedApplication().openURL(NSURL(string: object.url))

но это работает только на iOS а не на OSX

и Запуск Услуги, Я нашел нет примеров для swift, и есть много устаревших для OSX 10.10

любая помощь приветствуется - спасибо.

6 ответов


Swift 3 или более поздней версии

import Cocoa

if let url = URL(string: "https://www.google.com"), 
    NSWorkspace.shared.open(url) {
    print("default browser was successfully opened")

}

для iOS, вы можете использовать следующее:

let url = NSURL(string: "https://google.com")!
UIApplication.sharedApplication().openURL(url)

вы должны развернуть NSURL.


при использовании 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")
}

Я надеюсь, что эта информация помогает тому, к кому она относится.


macOS:

NSWorkspace.sharedWorkspace().openURL(NSURL(string: "https://google.com")!)

iOS:

UIApplication.sharedApplication().openURL(NSURL(string: "https://google.com")!)

просто бонус. Если вы хотите откройте 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
  )
}

обновление xCode 9

let url = URL(string: "https://www.google.com")!

UIApplication.shared.open(url, options: [:], completionHandler: nil)