问题
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.
回答1:
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?
}
回答2:
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];
来源:https://stackoverflow.com/questions/16012945/check-if-google-maps-app-is-installed-in-ios-6