У меня проблемы с перехватом кликов по URL в UIWebView. Я прочитал и нашел, что самая распространенная проблема заключается в том, что ссылки имеют атрибут target = "_ blank", который открывается в новом окне, но у моего нет такого атрибута. URL-адреса имеют вид "/ слово", где слово - это произвольное слово. Я также кодирую их с% 20, когда это необходимо. Мой класс UIWebViewDelegate даже не получает событие shouldStartLoadWithRequest: просто ничего не происходит. Я также попытался вставить кнопку в HTML, и они тоже не отвечают.
Существуют ли другие правила, определяющие, какие URL-адреса будет подтверждать UIWebView? Я попытался использовать абсолютный URL (и даже просто "http://www.google.com"),", а также заменить всю строку HTML только действительной ссылкой на Google, но все безрезультатно. И действительно странным является то, что я могу найдите одну ссылку, которая будет работать - по ней можно щелкнуть, и я успешно поймал событие, но, кажется, (я выглядел довольно усердно) нет ничего особенного между HTML-кодом, содержащим эту ссылку, и другими.
Учитывая, что я новичок в платформе iPhone, я полагаю, что вполне могу делать что-то более фундаментальное неправильно. Поток через приложение выглядит следующим образом: основным представлением является UITableViewController, который позволяет пользователям выбирать из списка слов. Когда слово выбрано, новый UIViewController создается и выдвигается на экран. Это представление с UIWebView, которое отображает данные, загруженные из базы данных SQLite. Некоторые соответствующие биты кода приведены ниже.
//move from the UITableViewController to UIViewController with UIWebView
DetailViewController *viewController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
...
[self.navigationController pushViewController:viewController animated:YES];
//load HTML and display it in a UIWebView
NSString *output = [NSString stringWithFormat:@"%@%@%@",header,definition,footer];
[definitionView loadHTMLString:output baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
Любая помощь будет принята с благодарностью - с этим я немного выдернул волосы.