2014-11-02 304 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)