En la página de configuración, quiero incluir tres enlaces a
- Mi sitio de soporte de aplicaciones
- Tutorial de la aplicación de YouTube
- Mi sitio principal (es decir, vinculado a una etiqueta 'Creado por Dale Dietrich').
He buscado este sitio y la web y mi documentación y no he encontrado nada que sea obvio.
NOTA: No quiero abrir páginas web dentro de mi aplicación. Solo quiero enviar el enlace a Safari y ese enlace estará abierto allí. He visto varias aplicaciones que hacen lo mismo en su página de Configuración, por lo que debe ser posible.
ios
url
mobile-safari
Dale Dietrich
fuente
fuente
Respuestas:
Esto es lo que hice:
Creé una IBAction en los archivos de encabezado .h de la siguiente manera:
Agregué un UIButton en la página de Configuración que contiene el texto al que quiero vincular.
Conecté el botón a IBAction en File Owner adecuadamente.
Luego implemente lo siguiente:
C objetivo
Rápido
(IBAction en viewController, en lugar del archivo de encabezado)
fuente
Sintaxis rápida:
Nueva sintaxis Swift para iOS 9.3 y versiones anteriores
A partir de una nueva versión de Swift (¿posiblemente swift 2?), UIApplication.sharedApplication () ahora es UIApplication.shared (supongo que se hace un mejor uso de las propiedades calculadas). Además, la URL ya no es convertible implícitamente a NSURL, ¡debe convertirse explícitamente con as!
Nueva sintaxis Swift a partir de iOS 10.0
El método openURL ha quedado obsoleto y reemplazado por un método más versátil que toma un objeto de opciones y un controlador de finalización asíncrono a partir de iOS 10.0
fuente
openURL(_:)
fue desaprobado en iOS 10.0, en su lugar, debe llamar al método de instanciaopen(_:options:completionHandler:)
en UIApplication.if let url = NSURL(string:"http://www.reddit.com/") { UIApplication.shared.open(url) }
siempre te servirá mejor. Puede quererassert
y error en laelse
declaración para detectar errores tipográficos.Aquí se requiere una comprobación de que la url que se abrirá puede abrirse por dispositivo o simulador o no. Porque algunas veces (la mayoría en el simulador) descubrí que causa accidentes.
C objetivo
Swift 2.0
Swift 4.2
fuente
canOpenURL
. No veo por qué simplemente no llamaríasopenURL:url
y si falla, lidia con la falla.canOpenURL
se usa principalmente para detectar la instalación de una aplicación sin salir de la aplicación actual.openURL(_:)
fue desaprobado en iOS 10.0, en su lugar, debe llamar al método de instanciaopen(_:options:completionHandler:)
en UIApplication.Eche un vistazo al
-openURL:
método en UIApplication. Debería permitirle pasar una instancia NSURL al sistema, que determinará en qué aplicación abrirla y ejecutar esa aplicación. (Tenga en cuenta que probablemente desee verificar-canOpenURL:
primero, en caso de que la URL no pueda ser manejada por las aplicaciones instaladas actualmente en el sistema, aunque esto probablemente no sea un problema para loshttp://
enlaces simples ).fuente
openURL(_:)
fue desaprobado en iOS 10.0, en su lugar, debe llamar al método de instanciaopen(_:options:completionHandler:)
en UIApplication.Y, en caso de que no esté seguro de si la URL proporcionada
text
tiene un esquema:fuente
text
aquí) no estará codificada y necesita un código como este.La versión de Objective-C no obsoleta sería:
fuente
Swift 3.0
Esto también es compatible con dispositivos que ejecutan versiones anteriores de iOS
fuente
Solución Swift 3 con un botón Listo
No te olvides de
import SafariServices
fuente
Debido a que esta respuesta está en desuso desde iOS 10.0, una mejor respuesta sería:
y en Objetivo-c
fuente
openURL ( :) fue desaprobado en iOS 10.0, en su lugar, debe usar el siguiente método de instancia en UIApplication: open ( : options: completeHandler :)
Ejemplo usando Swift
Esto abrirá " https://apple.com " en Safari.
https://developer.apple.com/reference/uikit/uiapplication/1648685-open
fuente
En SWIFT 3.0
fuente
Swift 5:
Uso:
Referencia:
OpenURL en iOS10
fuente
Prueba esto:
fuente
En Swift 1.2, intente esto:
fuente
Solución Swift 4:
fuente