4

iOS 5のアプリでは、ボタン名がマップに表示されます

たとえば、店舗の詳細ビューにはshowinmapボタンがあり、このボタンはmaps.googleに移動して、ユーザーの現在の方向と店舗の方向を表示します。また、これらの方向の間に、そこへの行き方について線を引きます。

これが私の方法でした:

NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=Current+Location&daddr=%@,%@",lonlocation,latlocation];  

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];                  

しかし、あなたが知っているように、iOS6にはグーグルマップアプリはありません。その代わりに、アップルの新しいマップアプリがあります。

今私の問題は、iOS6バージョンのアップルマップアプリで同じ仕事をするようにコードを変更するにはどうすればよいですか?

4

2 に答える 2

7

URLを置き換えるだけで、魅力のように機能しますmaps.google.com:)maps.apple.com

CGFloat sysVers = [UIDevice currentDevice].systemVersion.floatValue;
NSString* hostName = (sysVers < 6.0) ? @"maps.google.com" : @"maps.apple.com";

NSString* url = [NSString stringWithFormat: @"http://%@/maps?saddr=Current+Location&daddr=%@,%@",hostName,lonlocation,latlocation];  

[[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];                  

[編集]@Vagariが彼の回答で指摘したように、Appleは私よりもうまく統合しているようでmaps.apple.com、iOS5でもすべてのURLを指すことができます。AppleはURLを発行すると、自動的にmaps.google.comにリダイレクトします。 iOS5のデバイスから!

于 2012-09-25T20:09:23.663 に答える
3

AliSoftwareが彼の方法でホップを節約している間。技術的には、をに変更するだけmaps.google.comですmaps.apple.com。AppleはiOS6以外のデバイスにリダイレクトをプッシュします。明確にしたかっただけです。

于 2012-10-02T17:02:18.453 に答える