使用目标iOS 5.0从iOS SDK 6.1加载Maps App

时间:2013-02-15 17:41:21

标签: iphone ios ipad ios6 mapkit

我想在我的应用程序中支持iOS5,我使用iOS 6.1 SDK编译。

一项功能是将用户带到地图应用程序。 Here is a link解释如何使用适用于iOS 5的iOS SDK 5以及适用于iOS 6的iOS SDK 6。

但是,如果我使用iOS 6.1 SDK并使用iOS 5设备,magic URL link会根据需要将我带到Mobile Safari中的maps.google.com网站,而不是原生地图应用。

可以修复吗?

编辑

到目前为止,我有这个:

BOOL appleMapsSupported = FALSE;
NSString *reqSysVer = @"6.0";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
    appleMapsSupported = TRUE;
if (appleMapsSupported){
    NSLog(@"device version %@", [[UIDevice currentDevice] systemVersion]);
    MKPlacemark* placemark = [[MKPlacemark alloc] initWithCoordinate:coordinate addressDictionary:@{(NSString*)kABPersonAddressStreetKey:@"Your Place"}];
    MKMapItem* mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
    [mapItem openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey : MKLaunchOptionsDirectionsModeWalking}];
}else{
    NSString* url = [NSString stringWithFormat:@"http://maps.google.com/?t=m&q=Your+Place%%40%g,%g", coordinate.latitude, coordinate.longitude];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}

2 个答案:

答案 0 :(得分:2)

Apple更新了他们对地图的网址处理,您需要指向maps.apple.com,这将适当地重定向到Google。 See the documentation for more/how

答案 1 :(得分:0)

链接的答案看起来很好。您需要做的就是通过something like this检查用户正在运行的iOS版本,并执行适用于iOS 6案例和iOS不足6案例的相应代码。