web-dev-qa-db-fra.com

OSX Swift URL ouverte dans le navigateur par défaut)

Comment ouvrir une URL dans le navigateur par défaut du système en utilisant Swift comme langage de programmation et OSX en tant que plateforme).

J'ai trouvé beaucoup avec UIApplication comme

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

mais cela ne fonctionne que sur iOS et non sur OSX

Et le Launch Services , j'ai trouvé qu'il n'y avait pas d'exemple pour Swift et il y en a beaucoup qui sont obsolètes pour OSX 10.10

Toute aide bienvenue - merci.

65
user2929462

Swift 3 ou plus tard

import Cocoa

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

}
118
Leo Dabus

Pour MacOS, vous pouvez utiliser ceci:

let url = URL(string: "https://www.stackoverflow.com")!
NSWorkspace.sharedWorkspace().openURL(url))

Pour iOS, vous pouvez utiliser les éléments suivants:

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

Vous devez déballer NSURL.

38
Connor Knabe

macOS:

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

iOS:

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

Lorsque vous utilisez Swift, vous pouvez ouvrir une page Web dans le navigateur par défaut à l’aide des éléments suivants:

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

Dans la réponse acceptée ci-dessus, vous pouvez également vérifier une URL à l'aide de Swift en saisissant les éléments suivants:

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

J'espère que cette information est utile à qui de droit.

11
FivePixels

mise à jour xCode 9

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

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

Juste un bonus. Si vous voulez ouvrir une URL dans un navigateur spécifique (même un autre client pouvant gérer cette URL), voici le code Swift testé sur Xcode 8.2.1 et 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
  )
}
8
longkai

Pour Swift 5, Xcode 1 et MAC OS:

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

MacOS Xcode 10 Swift 4.2)

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