0

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

一项功能是将用户带到地图应用程序。这是一个链接,解释了如何使用适用于 iOS 5 的 iOS SDK 5 以及适用于 iOS 6 的 iOS SDK 6 进行操作。

但是,如果我使用 iOS 6.1 SDK 并使用 iOS 5 设备,那么神奇的 URL 链接会根据需要将我带到 Mobile Safari 中的 maps.google.com 网站,而不是本机 Maps 应用程序。

这可以解决吗?

编辑

到目前为止,我有这个:

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]];
}
4

2 回答 2

2

Apple 已更新其对地图的 URL 处理,您需要指向maps.apple.com,这将适当地重定向到 Google。有关更多/如何的信息,请参阅文档

于 2013-02-15T17:44:07.127 回答
0

链接的答案看起来不错。您需要做的就是通过类似这样的方式检查用户正在运行的 iOS 版本并为 iOS 6 案例和 iOS 小于 6 案例执行适当的代码。

于 2013-02-15T17:43:37.153 回答