puede porque paginas pagina internet funciona esta enlaces conectado aplicaciones abrir abre ios url mobile-safari

porque - Cómo lanzar un safari y abrir una URL desde la aplicación iOS



safari no funciona en iphone (13)

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 en este sitio y en 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 debe estar abierto allí. He visto un número de aplicaciones que hacen lo mismo en su página de Configuración, por lo que debe ser posible.


Aquí se requiere una comprobación de que la URL que va a estar abierta puede abrirse por dispositivo o simulador o no. Porque algunas veces (la mayoría en el simulador) encontré que causa fallas.

C objetivo

NSURL *url = [NSURL URLWithString:@"some url"]; if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; }

Swift 2.0

let url : NSURL = NSURL(string: "some url")! if UIApplication.sharedApplication().canOpenURL(url) { UIApplication.sharedApplication().openURL(url) }


Eche un vistazo al método -openURL: en UIApplication. Debería permitirle pasar una instancia de NSURL al sistema, que determinará en qué aplicación abrirla e iniciará esa aplicación. (Tenga en cuenta que probablemente querrá consultar -canOpenURL: primero, en caso de que las aplicaciones instaladas actualmente en el sistema no manejen la URL, aunque esto probablemente no sea un problema para los enlaces http:// ).


En Swift 1.2, prueba esto:

let pth = "http://www.google.com" if let url = NSURL(string: pth){ UIApplication.sharedApplication().openURL(url)


Heres lo que hice:

  1. Creé una IBAction en los archivos .h del encabezado de la siguiente manera:

    - (IBAction)openDaleDietrichDotCom:(id)sender;

  2. Agregué un UIButton en la página de Configuración que contiene el texto al que quiero enlazar.

  3. Conecté el botón a IBAction en File Owner de forma adecuada.

  4. Luego implementa lo siguiente:

Obj c

- (IBAction)openDaleDietrichDotCom:(id)sender { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.daledietrich.com"]]; }

Rápido

(IBAction en viewController, en lugar de un archivo de cabecera)

if let link = URL(string: "https://yoursite.com") { UIApplication.shared.open(link) }


La versión no obsoleta de Objective-C sería:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://apple.com"] options:@{} completionHandler:nil];


Prueba esto:

NSString *URL = @"xyz.com"; if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:URL]]) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:URL]]; }


Solución Swift 3 con un botón Hecho

No te olvides de import SafariServices

if let url = URL(string: "http://www.yoururl.com/") { let vc = SFSafariViewController(url: url, entersReaderIfAvailable: true) present(vc, animated: true) }


Solución Swift 4:

UIApplication.shared.open(NSURL(string:"http://yo.lo")! as URL, options: [String : Any](), completionHandler: nil)


Y, en caso de que no esté seguro de si el text URL suministrada tiene un esquema:

NSString* text = @"www.apple.com"; NSURL* url = [[NSURL alloc] initWithString:text]; if (url.scheme.length == 0) { text = [@"http://" stringByAppendingString:text]; url = [[NSURL alloc] initWithString:text]; } [[UIApplication sharedApplication] openURL:url];


En SWIFT 3.0

if let url = URL(string: "https://www.google.com") { UIApplication.shared.open(url, options: [:]) }


Sintaxis Swift:

UIApplication.sharedApplication().openURL(NSURL(string:"http://www.reddit.com/")!)

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 (haciendo un mejor uso de las propiedades computadas, supongo). Además, la URL ya no se puede convertir implícitamente a NSURL, se debe convertir explícitamente con as!

UIApplication.sharedApplication.openURL(NSURL(string:"http://www.reddit.com/") as! URL)

Nueva sintaxis Swift a partir de iOS 10.0

El método openURL ha sido desaprobado 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

UIApplication.shared.open(NSURL(string:"http://www.reddit.com/")! as URL)


Swift 3.0

if let url = URL(string: "https://www.reddit.com") { if #available(iOS 10.0, *) { UIApplication.shared.open(url, options: [:]) } else { UIApplication.shared.openURL(url) } }

Esto también es compatible con dispositivos que ejecutan versiones anteriores de iOS


openURL ( :) quedó en desuso en iOS 10.0, en su lugar, debe usar el siguiente método de instancia en UIApplication: open (: options: completedHandler :)

Ejemplo usando Swift
Esto abrirá " https://apple.com " en Safari.

if let url = URL(string: "https://apple.com") { if UIApplication.shared.canOpenURL(url) { UIApplication.shared.open(url, options: [:], completionHandler: nil) } }

https://developer.apple.com/reference/uikit/uiapplication/1648685-open