1

押すと、IOS 7 のネイティブ マップ アプリにリダイレクトされるシンプルなボタンがあります。現在、Safari アプリに移動する maps.google.com の URL を使用しています。

私の質問は、指定された住所を開くマップアプリを電話に尋ねさせ、サファリ、グーグルマップ、アップルマップ、または電話上の他のアプリから選択するようにするにはどうすればよいですか? 住所は通常の住所です (例: London, UK)。ありがとう!

4

2 に答える 2

2

次のようなカスタム URL を使用することをお勧めします。

NSURL *url = [NSURL URLWithString:@"http://maps.google.com/?q=London"];
[[UIApplication sharedApplication] openURL:url];

アップルマップ

Apple のビルトイン マップを開くには、次のソリューションを使用します: iOS 6 でマップ アプリをプログラムで開く

グーグルマップ

公式の Google マップ アプリを開きたい場合は、次のようにカスタム URL スキームを使用できます: https://developers.google.com/maps/documentation/ios/urlscheme :

if ([[UIApplication sharedApplication] canOpenURL:
     [NSURL URLWithString:@"comgooglemaps://"]]) {
  [[UIApplication sharedApplication] openURL:
   [NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
  NSLog(@"Can't use comgooglemaps://");
}

ユーザーにchoiseを表示する方法は?

UIActionSheet を使用することをお勧めします: https://developer.apple.com/library/ios/documentation/uikit/reference/UIActionSheet_Class/Reference/Reference.html

于 2013-10-21T09:16:40.967 に答える
1

このコードをチェックしてください:

NSString *urlString = [NSString stringWithFormat:@"http://maps.google.com/maps?q=%@",addressString];
NSString *escaped = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:escaped]];  
于 2014-03-17T05:59:07.903 に答える