iOS
Gestione degli schemi URL
Ricerca…
Sintassi
// metodo canOpenURL verifica se esiste un'app in grado di gestire lo schema URL indicato.
// Swift
UIApplication.sharedApplication (). CanOpenURL (_ aUrl: NSURL)
// Obiettivo-C
[[UIApplication sharedApplication] canOpenURL: (NSURL *) aUrl];
// metodo openURL tenta di aprire una risorsa localizzata dall'URL. SÌ / vero se è stato aperto altrimenti NO / falso.
// Swift
UIApplication.sharedApplication (). OpenURL (_ aUrl: NSURL)
// Obiettivo-C
[[UIApplication sharedApplication] openURL: (NSURL *) aUrl];
Parametri
Parametro | Senso |
---|---|
aUrl | un'istanza NSURL che memorizza una stringa di schema incorporata o personalizzata |
Osservazioni
In iOS9 e versioni successive la tua app deve elencare qualsiasi schema URL che vorrà interrogare. Questo viene fatto aggiungendo LSApplicationQueriesSchemes
a Info.plist
iOS ha il supporto integrato per gli schemi tel
, http
/ https
, sms
, mailto
, facetime
. Supporta anche gli URL basati su http per le app di Youtube
, Maps
e iTunes
.
Esempi di schemi di URL incorporati:
tel : tel://123456890
o tel:123456890
http : http://www.google.com
facetime : facetime://azimov@demo.com
mailto : mailto://azimov@demo.com
sms : sms://123456890
o sms:123456890
Youtube : https://www.youtube.com/watch?v=-eCaif2QKfA
Mappe :
Utilizzando l'indirizzo:
http://maps.apple.com/?address=1,Infinite+Loop,Cupertino,California
Utilizzando le coordinate:
http://maps.apple.com/?ll=46.683155557,6.683155557
iTunes : https://itunes.apple.com/us/artist/randy-newman/id200900
Nota : non tutti i caratteri speciali sono supportati nello schema tel
(ad esempio *
o #
). Ciò avviene a causa di problemi di sicurezza per impedire agli utenti di reindirizzare le chiamate non autorizzate, pertanto in questo caso l'app Phone
non verrà aperta.
Utilizzo dello schema URL incorporato per aprire l'app Mail
Swift:
if let url = URL(string: "mailto://azimov@demo.com") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
print("Cannot open URL")
}
}
Objective-C:
NSURL *url = [NSURL URLWithString:@"mailto://azimov@demo.com"];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
} else {
NSLog(@"Cannot open URL");
}
Schemi URL Apple
Si tratta di schemi URL supportati da app native su iOS, OS X e watchOS 2 e versioni successive.
Link di apertura in Safari:
Objective-C
NSString *stringURL = @"http://stackoverflow.com/";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "http://stackoverflow.com/"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
Avvio di una conversazione telefonica
Objective-C
NSString *stringURL = @"tel:1-408-555-5555";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
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>
Avvio di una conversazione FaceTime
Objective-C
NSString *stringURL = @"facetime:14085551234";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
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:user@example.com">Connect using FaceTime</a>
Apertura Messaggi App per comporre un sms al destinatario:
Objective-C
NSString *stringURL = @"sms:1-408-555-1212";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
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>
Aprire l'app Mail per comporre un'email al destinatario:
Objective-C
NSString *stringURL = @"mailto:foo@example.com";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "mailto:foo@example.com"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="mailto:frank@wwdcdemo.example.com">John Frank</a>
È inoltre possibile includere un campo oggetto, un messaggio e più destinatari nei campi A, Cc e Ccn. (In iOS, l'attributo from viene ignorato.) L'esempio seguente mostra un URL mailto che include diversi attributi:
mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here!
Nota: la finestra di dialogo di composizione della posta elettronica può essere presentata anche all'interno dell'app utilizzando MFMailComposeViewController
.