Actualmente estoy abriendo el enlace en mi aplicación en un WebView
, pero estoy buscando una opción para abrir el enlace en Safari .
150
No está "horneado en Swift", pero puede utilizar UIKit
métodos estándar para hacerlo. Eche un vistazo a UIApplication's (en desuso) y .openUrl(_:)
open(_:options:completionHandler:)
Swift 4 + Swift 5 (iOS 10 y superior)
guard let url = URL(string: "https://stackoverflow.com") else { return }
UIApplication.shared.open(url)
Swift 3 (iOS 9 y versiones inferiores)
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)
Nuevo con iOS 9 y superior, puede presentarle al usuario un
SFSafariViewController
(consulte la documentación aquí ). Básicamente obtienes todos los beneficios de enviar al usuario a Safari sin hacer que abandone tu aplicación. Para usar el nuevo SFSafariViewController solo:y en algún lugar de un controlador de eventos, presente al usuario el controlador de vista de safari de esta manera:
La vista de safari se verá así:
fuente
sharedApplication
propiedad en la extensión de la aplicación está prohibido. Para más información: developer.apple.com/library/archive/documentation/General/…ACTUALIZADO para Swift 4: (crédito a Marco Weber)
O vaya con más estilo rápido usando
guard
:Swift 3:
Puede marcar NSURL como opcional implícitamente:
fuente
if let requestUrl = NSURL(string: "http://www.iSecurityPlus.com") { UIApplication.shared.openURL(requestUrl as URL) }
Swift 3 y IOS 10.2
fuente
desde iOS 10 deberías usar:
fuente
Swift 5
Swift 5: verifique
canOpneURL
si es válido, entonces está abiertofuente
En Swift 1.2:
fuente
En Swift 2.0:
fuente
IOS 11.2 Swift 3.1-4
fuente