В моем приложении для iPhone у меня есть UIWebView, где я загружаю локальный HTML. Все работает просто отлично, но теперь я хочу иметь возможность обрабатывать локальные ссылки (на сноски): когда я нажимаю на локальную ссылку, я хочу иметь возможность перейти к сноске, на которую она ссылается, а затем иметь возможность вернуться ,
<a href="#tofootnote">jump to footnote</a>
Я справился с этим, добавив свой код в shouldStartLoadWithRequest и перехватывая щелчки по локальной ссылке; когда щелкают по локальной ссылке, я работаю над своей магией (скрываю некоторые элементы пользовательского интерфейса, добавляю кнопку возврата и т. д.); Нажатие на кнопку «Назад» возвращает меня к исходному местоположению в HTML-документе.
Проблема в том, что нажатие ОДНАЖДЫ СНОВА на ссылку больше не вызывает метод mustStartLoadWithRequest. Т.е. следующий код:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"foo bar");
return YES;
}
отображает только «foo bar» ОДИН РАЗ (фактически, дважды - первый раз, когда я первоначально загружаю документ), но только ОДИН РАЗ после этого, независимо от того, сколько раз я нажимаю на локальную ссылку
Итак, если у кого-то нет лучшего объяснения, я предполагаю, что UIWebView кэширует документ, ссылку или что-то еще и больше не вызывает обработчик после первоначального вызова; Если это так, как я могу очистить этот внутренний кэш? (без перезагрузки документа)