Мое приложение, которое я разрабатываю, требует, чтобы пользователь мог прокладывать маршруты до определенного места. У меня есть вид, настроенный для вызова определенной веб-страницы с моего сервера, с помощью формы, в которой они вводят свой адрес, и он предоставляет ссылку на 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>