Verificare se lo schema di URL personalizzato viene definito

Schemi URL personalizzati (URL Scheme) sono la strada, approvata da Apple, che consentono ad un’applicazione di comunicare con un’altra. Ad esempio, è possibile avviare l’applicazione telefono per effettuare una chiamata utilizzando l’URL personalizzato tel ://. Allo stesso modo, è possibile chiamare una app  da terzi (non Apple) utilizzando un URL personalizzato, e allo stesso modo, altre applicazioni richiamare la vostra applicazione se si definisce un URL personalizzato.

url_scheme_open

Se si prevede di chiamare un’altra applicazione tramite un sistema di URL personalizzato su iOS, ecco una guida rapida per verificare se un sistema di URL specifico è stato definito. I due esempi seguenti mostrano il codice per la creazione di un oggetto NSURL con lo schema URL di destinazione e utilizzando l’istanza condivisa dell’applicazione per verificare se l’URL può essere aperto:

// Verifica l'app di Facebook è installata
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]])
{
 do something...
}

// Verifica l'app di Ebay è installata
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"ebay://"]])
{
 do something...
}

Non ci sono restrizioni su chi può definire un URL personalizzato. Ad esempio, fb :// non è necessariamente limitato a Facebook, per cui questo processo non è del tutto infallibile. Da quello che ho letto, Apple non definisce un processo per determinare quale applicazione sarà chiamato, se più di una app ha registrato lo sesso URL.

Qui è presente un elenco davvero ben fatto di URL personalizzati: iOS URL Schemes