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)