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://[email protected]
mailto : mailto://[email protected]
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://[email protected]") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else {
print("Cannot open URL")
}
}
Objective-C:
NSURL *url = [NSURL URLWithString:@"mailto://[email protected]"];
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:[email protected]">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:[email protected]";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
Swift:
let stringURL = "mailto:[email protected]"
if let url = URL(string: stringURL) {
UIApplication.shared.openURL(url)
}
HTML
<a href="mailto:[email protected]">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:[email protected][email protected]&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
.