So öffnen Sie eine URL im Standardbrowser des Systems, indem Sie Swift als Programmiersprache und OSX als Plattform verwenden.
Ich fand viel mit UIApplication wie
UIApplication.sharedApplication().openURL(NSURL(string: object.url))
Dies funktioniert jedoch nur unter iOS und nicht unter OSX
Und die Launch Services , die ich gefunden habe, haben keine Beispiele für schnelle und es gibt eine Menge veralteter für OSX 10.10
Jede Hilfe willkommen - danke.
Antworten:
Swift 3 oder höher
import Cocoa let url = URL(string: "https://www.google.com")! if NSWorkspace.shared.open(url) { print("default browser was successfully opened") }
quelle
Für MacOS können Sie Folgendes verwenden:
let url = URL(string: "https://www.stackoverflow.com")! NSWorkspace.sharedWorkspace().openURL(url))
Für iOS können Sie Folgendes verwenden:
let url = NSURL(string: "https://google.com")! UIApplication.sharedApplication().openURL(url)
Sie müssen NSURL auspacken.
quelle
Mac OS:
NSWorkspace.sharedWorkspace().openURL(NSURL(string: "https://google.com")!)
iOS:
UIApplication.sharedApplication().openURL(NSURL(string: "https://google.com")!)
quelle
Wenn Sie Swift 3 verwenden , können Sie eine Webseite im Standardbrowser wie folgt öffnen:
NSWorkspace.shared().open(NSURL(string: "https://google.com")! as URL)
In der oben akzeptierten Antwort können Sie eine URL auch mit Swift 3 überprüfen, indem Sie Folgendes eingeben:
if let checkURL = NSURL(string: "https://google.com") { if NSWorkspace.shared().open(checkURL as URL) { print("URL Successfully Opened") } } else { print("Invalid URL") }
Ich hoffe, dass diese Informationen jedem helfen, für den sie gelten.
quelle
xCode 9-Update
let url = URL(string: "https://www.google.com")! UIApplication.shared.open(url, options: [:], completionHandler: nil)
quelle
Nur ein Bonus. Wenn Sie eine URL in einem bestimmten Browser öffnen möchten (auch in einem anderen Client, der diese URL verarbeiten kann), finden Sie hier den Swift 3- Code, der unter Xcode 8.2.1 und macOS 10.12.2 getestet wurde.
/// 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 ) }
quelle
Für Swift 5 , Xcode 10 und MAC OS :
NSWorkspace.shared.open(NSURL(string: "http://www.lichess.org")! as URL)
quelle
if let url = URL(string: "https://www.lichess.org") { NSWorkspace.shared.open(url) }
MacOS Xcode 10 Swift 4.2 Update
NSWorkspace.shared.open(URL(string: "https://www.google.com")!)
quelle