#ios #map
#iOS #словарь
Вопрос:
У меня есть UIWebView со следующей ссылкой:
<a href="maps:saddr=Current Locationamp;amp;daddr=Some place on Earth@38.043316,-120.397757">Get Directions</a>
В Safari Mobile эта ссылка работает просто отлично и открывает приложение карты с текущим местоположением в широтах, но внутри моего приложения для iPhone в UIWebView это приводит к этой ошибке:
didFailLoadWithError:Error Domain=WebKitErrorDomain Code=101 "The URL can't be shown"
Я добавил следующий код в свой shouldStartLoadWithRequest, который проверяет наличие нестандартных схем и пытается запустить его с помощью внутреннего приложения:
if (![url.scheme isEqual:@"http"] amp;amp; ![url.scheme isEqual:@"https"] ) {
if ([[UIApplication sharedApplication]canOpenURL:url]){
[[UIApplication sharedApplication]openURL:url];
return NO;
}
}
return YES;
Что я мог делать неправильно? Раньше это работало в предыдущих версиях iOS.
Ответ №1:
Правильный URL-адрес больше не начинается с «maps». Вместо этого используйте «http». Вам также необходимо указать серверы Google.
Вот ссылка на соответствующие документы: Ссылки на карту
В вашем случае это выглядело бы примерно так:
http://maps.google.com/maps?saddr=Current Location?daddr=Some place on Earth@38.043316,-120.397757
Пожалуйста, обратите внимание, что этот код не тестируется, поскольку я сейчас не нахожусь рядом со своей машиной разработки.
Комментарии:
1. Проблема в том, что это запускает Google в Safari Mobile, а не приложение Maps, как это происходит в Safari Mobile. Я хочу запустить приложение Maps.
2. Вы изменили свою ссылку в UIWebView? Вы получаете эту ошибку на симуляторе или на устройстве?
3. Если я перейду по ссылке выше, он запустит Safari и maps через веб-сайт Google, а не приложение Maps. Если я открою эту же веб-страницу в Safari Mobile, откроется приложение Maps. Действительно сбивает с толку, поскольку раньше это работало так, как я предполагал.
4. Я не согласен с тем, что они показывают, как обрабатывается их тип URL для карт, но он открывается в Maps в Safari Mobile, но запускает Safari Mobile и попадает на веб-сайт Google из UIWebView.
5. Это было правильное действие, которое нужно было предпринять. Оказывается, отсутствие приложения Maps в симуляторе и отсутствие последней части доков испортили мое воскресенье. Спасибо за вашу помощь.