OSX Swift在默认浏览器中打开URL

时间:2014-11-02 21:49:49

标签: xcode macos swift nsurl openurl

如何使用Swift作为编程语言和OSX作为平台在系统默认浏览器中打开URL。

我在UIApplication中找到了很多,比如

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

但这只适用于iOS,而不适用于OSX

Launch Services,我发现没有swift的例子,OSX 10.10已经有很多不赞成使用了

欢迎任何帮助 - 谢谢。

8 个答案:

答案 0 :(得分:115)

Swift 3或更高版本

import Cocoa

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

}

答案 1 :(得分:34)

对于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。

答案 2 :(得分:11)

MACOS:

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

iOS:

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

答案 3 :(得分:10)

使用 Swift 3 时,您可以使用以下内容在默认浏览器中打开网页:

NSWorkspace.shared().open(NSURL(string: "https://google.com")! as 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")
}

我希望这些信息可以帮助它适用于任何人。

答案 4 :(得分:8)

只是奖金。如果您想在特定浏览器中打开网址(甚至是其他可以处理该网址的客户端),这里是在Xcode 8.2.1和macOS上测试的 Swift 3 代码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
  )
}

答案 5 :(得分:8)

xCode 9更新

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

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

答案 6 :(得分:1)

MacOS Xcode 10 Swift 4.2更新

NSWorkspace.shared.open(URL(string: "https://www.google.com")!)

答案 7 :(得分:0)

对于 Swift 5 Xcode 10 MAC OS

NSWorkspace.shared.open(NSURL(string: "http://www.lichess.org")! as URL)