У меня есть веб-контент внутри UIWebView в моем приложении. Моя цель состоит в том, чтобы все ссылки нормально открывались внутри приложения, но любые ссылки, начинающиеся с "http://maps",, открываются в safari, поэтому их можно, в свою очередь, открывать во внешнем приложении iphone maps. Если у вас есть решение этой проблемы, остановитесь читая сейчас, ниже я собираюсь предложить свое решение. В настоящее время все ссылки открыты внутри приложения, поэтому http://maps ссылки открываются на m.google.com внутри приложения. Решение, о котором я думаю, заключается в следующем код, который использует openURL для открытия всех ссылок в сафари:
(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
\[\[UIApplication sharedApplication] openURL:request.URL];
return false;
}
return true;
}
Очевидно, что проблема с этим кодом в том, что все ссылки открываются в Safari, а я хочу только ссылки на карту. Можете ли вы предложить способ разбора по ссылкам и пропустить через функцию только те, которые начинаются с http://maps? Также более простой вопрос, как мне делегировать UIWebView, чтобы я мог запустить этот код, а также является ли viewcontroller.m подходящим местом для размещения этого кода?
Если вы, ребята, могли бы предложить целую функцию, включая приведенную выше часть openURL и разбор ссылок, чтобы убедиться, что через функцию передаются только ссылки карт, что было бы здорово. Опять же, если у вас есть другое решение или обходной путь, я хотел бы услышать это. Большое спасибо за вашу помощь, stackoverflow был спасителем, я почти закончил свой первый проект!