В моем приложении iPhone у меня есть UIWebView, где я загружаю локальный html. Все работает очень хорошо, но теперь я хочу иметь возможность обрабатывать локальные ссылки (в сносках): когда я нажимаю на локальную ссылку, я хочу иметь возможность перейти к сноске, на которую она ссылается, а затем вернуться,
<a href="#tofootnote">jump to footnote</a>
Я обработал это, добавив свой код в shouldStartLoadWithRequest и перехватив клики по локальной ссылке; при щелчке по локальной ссылке я работаю над своей магией (скрыть некоторые элементы ui, добавить кнопку "Назад" и т.д.); нажатие на кнопку "Назад" возвращает меня обратно в исходное местоположение в документе html.
Проблема заключается в том, что нажатие ONCE AGAIN по ссылке больше не вызывает shouldStartLoadWithRequest. I.e., следующий код:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"foo bar");
return YES;
}
отображает только "foo bar" ONCE (фактически, дважды - первый раз, когда я первоначально загружаю документ), но только спустя один раз, независимо от того, сколько раз я нажимаю на локальную ссылку
Итак, если у кого-то нет лучшего объяснения, я предполагаю, что UIWebView кэширует документ или ссылку или что-то еще и больше не вызывает обработчик после первоначального вызова; Если это так, как я могу очистить этот внутренний кеш? (без перезагрузки документа)