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

use*_*462 66 macos xcode nsurl openurl swift

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

我在UIApplication中发现了很多

UIApplication.sharedApplication().openURL(NSURL(string: object.url))
Run Code Online (Sandbox Code Playgroud)

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

发射服务,我发现有没有例子采取迅速和有过时的OSX 10.10很多

欢迎任何帮助 - 谢谢.

Leo*_*bus 120

Swift 3或更高版本

import Cocoa

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

}
Run Code Online (Sandbox Code Playgroud)


小智 38

对于MacOS,您可以使用:

let url = URL(string: "https://www.stackoverflow.com")!
NSWorkspace.sharedWorkspace().openURL(url))
Run Code Online (Sandbox Code Playgroud)

对于iOS,您可以使用以下内容:

let url = NSURL(string: "https://google.com")!
UIApplication.sharedApplication().openURL(url)
Run Code Online (Sandbox Code Playgroud)

你必须打开NSURL.

  • 为什么这有23个赞成?关于问题的主题,应该删除. (9认同)
  • 责怪谷歌以这种方式索引这个页面,并且所有iOS搜索都是野兔......它很有用:) (5认同)
  • 它也适用于iOS。我投票了。 (2认同)
  • 这是误导性的,因为它不适用于问题中使用的平台. (2认同)

A.G*_*A.G 12

苹果系统:

NSWorkspace.sharedWorkspace().openURL(NSURL(string: "https://google.com")!)
Run Code Online (Sandbox Code Playgroud)

iOS版:

UIApplication.sharedApplication().openURL(NSURL(string: "https://google.com")!)
Run Code Online (Sandbox Code Playgroud)

  • 请描述第二个代码块是针对 iOS 的 (2认同)

dyl*_*lan 11

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

NSWorkspace.shared().open(NSURL(string: "https://google.com")! as URL)
Run Code Online (Sandbox Code Playgroud)

在上面接受的答案中,您还可以通过输入以下内容使用Swift 3检查URL :

if let checkURL = NSURL(string: "https://google.com") {
    if NSWorkspace.shared().open(checkURL as URL) {
        print("URL Successfully Opened")
    }
} else {
    print("Invalid URL")
}
Run Code Online (Sandbox Code Playgroud)

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

  • 由于这是 Swift 3,我认为 NSURL 不再是必要的 - 只需使用 URL: NSWorkspace.shared().open(URL(string: "https://google.com")!) 并 if let checkURL = URL(string: "https://google.com") { if NSWorkspace.shared().open(checkURL) { print("URL 成功打开") } } else { print("无效的 URL") } (2认同)

gba*_*ett 9

xCode 9更新

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

UIApplication.shared.open(url, options: [:], completionHandler: nil)
Run Code Online (Sandbox Code Playgroud)

  • 这是针对iOS而非macOS (3认同)

lon*_*kai 8

只是奖金.如果要在特定浏览器(甚至是可以处理该URL的其他客户端)中打开URL,这里是在Xcode 8.2.1和macOS 10.12.2上测试的Swift 3代码.

/// 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
  )
}
Run Code Online (Sandbox Code Playgroud)


HCa*_*sko 6

对于Swift 5Xcode 10MAC OS

NSWorkspace.shared.open(NSURL(string: "http://www.lichess.org")! as URL)
Run Code Online (Sandbox Code Playgroud)

  • 仅使用 URL,而不是同时使用 URL 和 NSURL。例如:`if let url = URL(string: "https://www.lichess.org") { NSWorkspace.shared.open(url) }` (2认同)