2013-04-15 1 views
9

Sto cercando di capire come gestire il risultato di questo codice per verificare se Google Maps è installato nell'app.Verifica se l'app Google Maps è installata su iOS 6

[[UIApplication sharedApplication] canOpenURL: 
[NSURL URLWithString:@"comgooglemaps://"]]; 

Sto creando un UIAlertView con l'opzione in là e se sia o non sia desidero dare all'utente diverse opzioni.

Come ottengo il risultato del codice sopra riportato e lo trasformo in un BOOLEAN?

Grazie in anticipo.

risposta

21

Il risultato è già di canOpenURL: un valore booleano:

BOOL canHandle = [[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps:"]]; 

if (canHandle) { 
    // Google maps installed 
} else { 
    // Use Apple maps? 
} 
+0

fredda che ha un senso ora - mai visto in quel modo :-) –

+0

funziona perfettamente –

+0

restituisce falso ed google map è già lì in iphone c'è qualche altra soluzione per ios9 ??? –

4

Soprattutto per iOS 9.0

Fase 1. Aggiungerecomgooglemaps in LSApplicationQueriesSchemes nelle tue app Info.plist

Passaggio 2.

BOOL isGoogleMap = [[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"comgooglemaps://"]]; 
UIAlertView *alert; 

if(isGoogleMap) 
{ 
    alert = [[UIAlertView alloc] 
      initWithTitle:@"Get Directions" 
      message:@"Show Map" 
      delegate:self 
      cancelButtonTitle:@"Cancel" 
      otherButtonTitles:@"View in Apple Maps", @"View in Google Maps", nil]; 
} 
else 
{ 
    alert = [[UIAlertView alloc] 
      initWithTitle:@"Get Directions" 
      message:@"Show Map" 
      delegate:self 
      cancelButtonTitle:@"Cancel" 
      otherButtonTitles:@"View in Apple Maps", nil]; 
} 
alert.tag = 1010; 
[alert show];