iOS
Manejo de esquemas de URL
Buscar..
Sintaxis
// El método canOpenURL verifica si hay alguna aplicación que pueda manejar el esquema de URL indicado.
// Swift
UIApplication.sharedApplication (). CanOpenURL (_ aUrl: NSURL)
// C objetivo
[[UIApplication sharedApplication] canOpenURL: (NSURL *) aUrl];
// El método openURL intenta abrir un recurso ubicado por URL. SÍ / verdadero si se abrió de otro modo NO / falso.
// Swift
UIApplication.sharedApplication (). OpenURL (_ aUrl: NSURL)
// C objetivo
[[UIApplication sharedApplication] openURL: (NSURL *) aUrl];
Parámetros
Parámetro | Sentido |
---|---|
todo | una instancia de NSURL que almacena una cadena de esquema incorporada o personalizada |
Observaciones
En iOS9 y superior, su aplicación debe enumerar los esquemas de URL que desee consultar. Esto se hace agregando LSApplicationQueriesSchemes
a Info.plist
iOS tiene soporte incorporado para los esquemas de tel
, http
/ https
, sms
, mailto
, facetime
. También admite URL basadas en http para aplicaciones de Youtube
, Maps
e iTunes
.
Ejemplos de esquemas de URL incorporados:
tel : tel://123456890
o tel:123456890
http : http://www.google.com
facetime : facetime://[email protected]
mailto : mailto://[email protected]
sms : sms://123456890
o sms:123456890
Youtube : https://www.youtube.com/watch?v=-eCaif2QKfA
Mapas :
Usando la dirección:
http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
Uso de coordenadas:
http://maps.apple.com/?ll=46.683155557,6.683155557
iTunes : https://itunes.apple.com/us/artist/randy-newman/id200900
Nota : No todos los caracteres especiales son compatibles con el esquema de tel
(por ejemplo, *
o #
). Esto se hace debido a preocupaciones de seguridad para evitar que los usuarios redireccionen llamadas no autorizadas, por lo que en este caso, la aplicación del Phone
no se abrirá.
Usando el esquema de URL incorporado para abrir la aplicación Mail
Rápido:
if let url = URL(string: "mailto://[email protected]") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
print("Cannot open URL")
}
}
C objetivo:
NSURL *url = [NSURL URLWithString:@"mailto://[email protected]"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"Cannot open URL");
}
Esquemas de URL de Apple
Estos son esquemas de URL admitidos por aplicaciones nativas en iOS, OS X y watchOS 2 y posteriores.
Abrir enlace en Safari:
C objetivo
NSString *stringURL = @"http://stackoverflow.com/";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Rápido:
let stringURL = "http://stackoverflow.com/"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
Comenzando una conversación telefónica
C objetivo
NSString *stringURL = @"tel:1-408-555-5555";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Rápido:
let stringURL = "tel:1-408-555-5555"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="tel:1-408-555-5555">1-408-555-5555</a>
Comenzando una conversación de FaceTime
C objetivo
NSString *stringURL = @"facetime:14085551234";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Rápido:
let stringURL = "facetime:14085551234"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="facetime:14085551234">Connect using FaceTime</a>
<a href="facetime:[email protected]">Connect using FaceTime</a>
Apertura de la aplicación Messages para componer un sms al destinatario:
C objetivo
NSString *stringURL = @"sms:1-408-555-1212";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Rápido:
let stringURL = "sms:1-408-555-1212"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="sms:">Launch Messages App</a>
<a href="sms:1-408-555-1212">New SMS Message</a>
Apertura de la aplicación Mail para redactar un correo electrónico al destinatario:
C objetivo
NSString *stringURL = @"mailto:[email protected]";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Rápido:
let stringURL = "mailto:[email protected]"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="mailto:[email protected]">John Frank</a>
También puede incluir un campo de asunto, un mensaje y varios destinatarios en los campos Para, Cc y Cco. (En iOS, se ignora el atributo from). El siguiente ejemplo muestra una URL mailto que incluye varios atributos diferentes:
mailto:[email protected][email protected]&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!
Nota: El diálogo de MFMailComposeViewController
correo electrónico también se puede presentar dentro de la aplicación usando MFMailComposeViewController
.