2014-11-02 300 views
49

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

我发现了很多与UIApplication的像

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

但这个工程只是在iOS上,而不是在OSX

而且Launch Services,我发现有迅速没有例子并没有过时了很多OSX 10.10

任何帮助欢迎 - 谢谢。

+0

我想这是因为我们应该使用新的扩展,而不是... – 2014-11-02 22:31:07

+1

我upvoted,因为我neede知道如何做到这一点的只有iOS版xd – Josh 2015-11-12 11:37:26

回答

86

的Xcode 8.1•斯威夫特3.0.1

import Cocoa 

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

在iOS设备上,你可以使用以下命令:

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

你必须解开NSURL。

+18

这里的问题是OS X,而不是iOS! – 2015-09-03 01:06:42

+7

为什么这有23个upvotes?关于该问题的主题,应予以删除。它也适用于iOS的 – 2016-12-10 21:19:40

+0

。我upvoted。 – Lin 2017-09-21 00:13:56

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

OR

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

第二个答案不适用于OSX ... – 2016-12-10 21:20:02

+0

早期版本的Swift的好参考(我在2。3) – 2017-08-24 15:54:20

+0

请说明第二个代码块适用于iOS – 2018-02-12 16:11:55

8

当使用斯威夫特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") 
} 

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

+0

因为这是Swift 3,我不认为NSURL是必要的 - 只需使用URL: NSWorkspace.shared()。open(URL(string:“ https://google.com“)) 和 如果让checkURL = URL(字符串: ”https://google.com“){ 如果NSWorkspace.shared()开(checkURL){ 打印。 (“URL成功打开”) } }其他{ print(“Invalid URL”) } – gepree 2017-05-03 13:14:15

6

只是一个奖金。如果你想在特定浏览器(甚至其他可以处理该URL的客户端)中打开一个URL,这里是在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 
) 
} 
3

的Xcode 9更新

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

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