iOS9之前的能够经过ios
[[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"baidumap://map/"]] [[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"iosamap://"]]
能够判读是否安装的百度地图与高德地图。然后经过git
//打开百度地图导航 - (void)openBaiDuMap{ NSString *urlString = [[NSString stringWithFormat:@"baidumap://map/direction?origin=latlng:%f,%f|name:个人位置&destination=latlng:%f,%f|name:终点&mode=driving",currentLatitude, currentLongitude,_shopLat,_shopLon] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ; [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]]; }
//打开高德地图导航 - (void)openGaoDeMap{ NSString *urlString = [[NSString stringWithFormat:@"iosamap://navi?sourceApplication=%@&backScheme=%@&poiname=%@&lat=%f&lon=%f&dev=1&style=2",@"app name", @"YGche", @"终点", _shopLat, _shopLon] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; [[UIApplication sharedApplication]openURL:[NSURL URLWithString:urlString]]; }
//打开苹果自带地图导航 - (void)openAppleMap{ //起点 CLLocationCoordinate2D coords1 = CLLocationCoordinate2DMake(currentLatitude,currentLongitude); MKMapItem *currentLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coords1 addressDictionary:nil]]; //目的地的位置 CLLocationCoordinate2D coords2 = CLLocationCoordinate2DMake(_shopLat,_shopLon); MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[MKPlacemark alloc] initWithCoordinate:coords2 addressDictionary:nil]]; toLocation.name =address; NSArray *items = [NSArray arrayWithObjects:currentLocation, toLocation, nil]; NSDictionary *options = @{ MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving, MKLaunchOptionsMapTypeKey: [NSNumber numberWithInteger:MKMapTypeStandard], MKLaunchOptionsShowsTrafficKey:@YES }; //打开苹果自身地图应用,并呈现特定的item [MKMapItem openMapsWithItems:items launchOptions:options]; }
在更新iOS9后原来的方法不起作用了。解决办法:app
在info.plist添加白名单url
<key>LSApplicationQueriesSchemes</key> <array> <string>baidumap</string> <string>iosamap</string> </array>