Перейти к приложению iPhone Maps из другого приложения - PullRequest
0 голосов
/ 14 августа 2011

Я пишу приложение, в котором я хочу, чтобы пользователь мог получать указания. Я знаю об API Google, и я его реализовал, но мне было интересно узнать, как перейти непосредственно к собственному приложению «Карты» и указать вместо этого указания для пользователя. Я думаю, что видел, как это было сделано раньше, но я могу ошибаться.

Любая помощь очень ценится.

Ответы [ 4 ]

2 голосов
/ 14 августа 2011

Вы можете использовать это:

NSString *latlong = @"-56.568545,1.256281";
NSString *url = [NSString stringWithFormat: @"http://maps.google.com/maps?ll=%@",
[latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

это

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

или это

[someUIApplication openURL:[[NSURL alloc] initWithString: @"http://maps.google.com/maps?q=London"]]

Вы даже можете указать уровень масштабирования, используя флаг z (значения от 1 до 19):

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com/maps?z=8"]];

Это должно вызвать приложение Google Maps. Я думаю, что эти инструкции работают только на реальном устройстве, а не в симуляторе. Удачи и прокомментируйте ниже, если у вас есть какие-либо проблемы с фрагментами:)

2 голосов
/ 14 августа 2011

Вы можете открыть приложение карт, используя обычный URL, который указывает на Google Maps. Из ссылки Схема URL Apple :

Схема URL-адресов карт используется для отображения географических местоположений и создания направлений движения между двумя точками. Если ваше приложение содержит информацию об адресе или местоположении, вы можете использовать ссылки на карту для пересылки этой информации в приложение «Карты» на iOS и на сайт «Карты Google» на других платформах.

В отличие от некоторых схем, URL-адреса карт не начинаются с идентификатора схемы «maps». Вместо этого ссылки на карты указываются как обычные ссылки http, но предназначены для серверов Google Maps. В следующих примерах показаны строки, которые вы использовали бы в Safari и в собственном приложении для отображения карты города Купертино, штат Калифорния.

  • HTML-ссылка:

<a href="http://maps.google.com/maps?q=cupertino">Cupertino</a>

Обратите внимание, что на устройстве, на котором не установлены карты (не уверены, существуют ли они вообще), ссылка откроется в обычном браузере, поскольку это просто ссылка HTTP.

Чтобы открыть URL-адрес, вы можете представить ссылку в UIWebView или использовать код для ее открытия. например:

[[UApplication sharedApplication] openURL: [NSURL URLWithString: @ "http://maps.google.com/maps?q=Cupertino"]];

Если вы хотите перейти в пользовательское местоположение и открыть его, когда пользователь нажимает кнопку, вы можете создать метод, подобный этому:

- (IBAction) openMapsAppAndShowLocation:(NSString *)locationToShow{

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", locationToShow]]];

}

Если вы хотите, вы можете изменить метод, чтобы взять также пару широта / долгота. Это может выглядеть так:

- (IBAction) openMapsAppAndShowLatitude:(double)latitude andLongitude:(double)longitude{

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?q=\"%f,%f\"", latitide, longitude]]];

}
1 голос
/ 13 октября 2011

@ Моше

Обратите внимание, что на устройстве, на котором не установлены карты (не уверен, существуют ли они вообще)

Например, возьмите симулятор iPhone.

1 голос
/ 14 августа 2011

Очень просто

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

Легко, как поцелуй

...