(iOS / iPhone / XCode) UIWebView не открывает карты Google в интегрированном приложении Карт - PullRequest
1 голос
/ 26 апреля 2011

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

При отправке этой страницы через Safari - она ​​прекрасно работает! Пользователь вводит свой адрес, нажимает кнопку «Перейти», и он попадает в приложение «Карты» и направляется к месту назначения. При использовании экземпляра UIWebView в моем приложении окно загружает Google Mobile Maps.

До сих пор я пытался отредактировать идентификатор агента браузера и использовать метод Swizzling (ни сработал). Экземпляр MapView в моем приложении не подходит из-за пользовательского интерфейса, в противном случае я бы использовал этот подход.

По сути, я хочу, чтобы ссылка на Google Maps в моем UIWebView открывалась в приложении "Карты", как в Safari.

Идеи


Пользователь нажимает кнопку hbgView, чтобы вызвать hbgViewController, используя этот код:

-(IBAction)hbgButton:(id)sender{
    hbgViewController *hbgView=[[hbgViewController alloc] initWithNibName:nil bundle:nil];
    [self presentModalViewController:hbgView animated:YES];
}

Затем я загружаю сеанс UIWebView с формой, используя этот код:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [svcWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"...com/mobile/map/hbg.html"]]];
}

Код формы документа hbg.html выглядит следующим образом:

<script>
function redirect()
{
var baseUrl = "http://maps.google.com/maps?saddr="
var suffix = "&daddr=endaddress&hl=en";
document.gmform.action=baseUrl+document.getElementById('url').value+suffix;
}
</script>
<form name="gmform" method="post" onsubmit="redirect()">
<input type="text" id="url">
<input type="submit" value="Go">
</form>

Ответы [ 2 ]

2 голосов
/ 08 мая 2011
-(IBAction)hbgdirButton:(id)sender{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com/maps?q=harrisburg+pa&hl=en"]];
}

http://maps.google.com/maps?q= должен быть префиксом ссылки

0 голосов
/ 26 апреля 2011

Чтобы убедить ваше приложение открыть ссылку в приложении карт, вам нужно использовать метод openURL, подобный этому;

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com?saddr=xxx&daddr=yyy&hl=en"]]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...