Ich WebView
öffne derzeit den Link in meiner App in a , suche aber nach einer Option zum Öffnen des Links in stattdessen Safari .
150
Es ist nicht "in Swift eingebrannt", aber Sie können Standardmethoden UIKit
verwenden, um es zu tun. Schauen Sie sich UIApplication's (veraltet) und an .openUrl(_:)
open(_:options:completionHandler:)
Swift 4 + Swift 5 (iOS 10 und höher)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.open(url)
Swift 3 (iOS 9 und niedriger)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.openURL(url)
Swift 2.2
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.sharedApplication().openURL(url)
Neu mit iOS 9 und höher können Sie dem Benutzer ein
SFSafariViewController
(siehe Dokumentation hier ) präsentieren. Grundsätzlich erhalten Sie alle Vorteile, wenn Sie den Benutzer an Safari senden, ohne dass er Ihre App verlässt. So verwenden Sie den neuen SFSafariViewController einfach:und irgendwo in einem Event-Handler präsentieren Sie dem Benutzer den Safari View Controller wie folgt:
Die Safari-Ansicht sieht ungefähr so aus:
quelle
sharedApplication
Eigenschaft in der App-Erweiterung ist verboten. Für mehr: developer.apple.com/library/archive/documentation/General/…AKTUALISIERT für Swift 4: (Dank an Marco Weber)
ODER gehen Sie mit mehr schnellem Stil mit
guard
:Swift 3:
Sie können NSURL implizit als optional überprüfen, indem Sie:
quelle
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") { UIApplication.shared.openURL(requestUrl as URL) }
Swift 3 & IOS 10.2
quelle
seit iOS 10 sollten Sie verwenden:
quelle
Swift 5
Swift 5: Überprüfen Sie mit,
canOpneURL
ob es gültig ist, dann ist es geöffnet.quelle
In Swift 1.2:
quelle
In Swift 2.0:
quelle
IOS 11.2 Swift 3.1-4
quelle