Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if Google Maps App is installed in iOS 6

I am trying to figure out how to handle the result of this code to see if Google Maps is installed in the app.

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

I am creating a UIAlertView with the option in there and if it is or isn't I wish to give the user different options.

How do I take the result of the code above and turn it into a BOOLEAN?

Thanks in advance.

like image 677
jwknz Avatar asked Apr 15 '13 10:04

jwknz


2 Answers

The result is already of canOpenURL: a boolean:

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

if (canHandle) {
   // Google maps installed
} else {
   // Use Apple maps?
}
like image 64
rckoenes Avatar answered Oct 17 '22 21:10

rckoenes


Above for iOS 9.0

Step 1. Add comgooglemaps in LSApplicationQueriesSchemes in your apps info.plist

Step 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];
like image 5
Jeet Avatar answered Oct 17 '22 21:10

Jeet