J'ouvre actuellement le lien dans mon application dans un WebView
, mais je recherche une option pour ouvrir le lien dans Safari à la place.
150
Ce n'est pas "intégré à Swift", mais vous pouvez utiliser des UIKit
méthodes standard pour le faire. Jetez un œil à UIApplication (obsolète) et .openUrl(_:)
open(_:options:completionHandler:)
Swift 4 + Swift 5 (iOS 10 et supérieur)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.open(url)
Swift 3 (iOS 9 et inférieur)
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)
Nouveau avec iOS 9 et supérieur, vous pouvez présenter à l'utilisateur un
SFSafariViewController
(voir la documentation ici ). Fondamentalement, vous bénéficiez de tous les avantages d'envoyer l'utilisateur vers Safari sans le faire quitter votre application. Pour utiliser simplement le nouveau SFSafariViewController:et quelque part dans un gestionnaire d'événements, présentez à l'utilisateur le contrôleur de vue safari comme ceci:
La vue safari ressemblera à ceci:
la source
sharedApplication
propriété dans l'extension d'application est interdit. Pour en savoir plus: developer.apple.com/library/archive/documentation/General/…MISE À JOUR pour Swift 4: (crédit à Marco Weber)
OU optez pour un style plus rapide en utilisant
guard
:Swift 3:
Vous pouvez vérifier NSURL comme facultatif implicitement en:
la source
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") { UIApplication.shared.openURL(requestUrl as URL) }
Swift 3 et IOS 10.2
la source
depuis iOS 10, vous devez utiliser:
la source
Swift 5
Swift 5: Vérifiez en utilisant
canOpneURL
si valide alors il est ouvert.la source
Dans Swift 1.2:
la source
Dans Swift 2.0:
la source
IOS 11.2 Swift 3.1 à 4
la source