2014-11-02 13 views
49

Jak otworzyć adres URL w domyślnej przeglądarce systemowej, używając Swift jako języka programowania i OSX jako platformy.Otwarty URL OSX Swift w domyślnej przeglądarce

Znalazłem wiele z UIApplication jak

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

ale to działa tylko na iOS, a nie na OSX

A Launch Services znalazłem nie ma przykładów na szybkie i tam jest dużo przestarzałe dla OSX 10.10

Każda pomoc mile widziany - dzięki.

+0

Myślę, że to dlatego, że jesteśmy podobno zamiast korzystać z nowych rozszerzeń ... –

+1

I upvoted bo neede wiedzieć, jak to zrobić tylko w iOS xd – Josh

Odpowiedz

86

Xcode 8.1 • Swift 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

Dla iOS, można użyć następujących:

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

Musisz rozpakować bibliotece NSURL.

+18

Tutaj pytanie dotyczy OS X, a nie iOS !!! –

+7

Dlaczego to 23 przegrane? Wyłącz temat na pytanie i powinien zostać usunięty. –

+0

działa również w systemie iOS. Przegłosowałem. – Lin

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

LUB

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

Druga odpowiedź nie dotyczy OSX ... –

+0

Dobre odniesienie do wcześniejszych wersji Swift (jestem na 2.3) –

+0

Proszę opisać, że drugi blok kodu jest dla iOS –

8

Podczas korzystania Swift 3, można otworzyć stronę w przeglądarce domyślnej przy użyciu następujących:

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

w przyjętym odpowiedzi powyżej, można również sprawdź adres URL za pomocą Swift 3, wprowadzając:

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

Mam nadzieję, że ta informacja pomoże każdemu, kogo dotyczy.

+0

Ponieważ to jest Swift 3, nie sądzę, że NSURL jest już potrzebny - wystarczy użyć adresu URL: NSWorkspace.shared(). Open (URL (ciąg: " https://google.com ")) i jeśli niech checkURL = URL (string: "https://google.com") { jeśli NSWorkspace.shared() open (checkURL) { druku. ("URL pomyślnie zakończony") } } else { print ("Nieprawidłowy URL") } – gepree

6

Tylko bonus. Jeśli chcesz, aby otworzyć adres URL w konkretnej przeglądarce (nawet inny klient, który może obsłużyć ten adres URL), tutaj jest testowany kod testowany na Xcode 8.2.1 i 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 Aktualizacja

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

UIApplication.shared.open(url, options: [:], completionHandler: nil) 
Powiązane problemy