У меня есть приложение, в котором пользователи могут перемещаться по куче локально сохраненных файлов HTML. У меня есть UIWebView
, правильно настроенный с UIWebViewDelegate
. Обычно, когда пользователь переходит по ссылке, вызывается shouldStartLoadWithRequest
, а чуть позже webViewDidFinishLoad
.
Но если ссылка указывает на якорь на той же странице, что и отображаемая в данный момент, вызывается только shouldStartLoadWithRequest
. webViewDidFinishLoad
не срабатывает.
В каком-то смысле я вижу, что это ожидаемое поведение, потому что внутристраничная навигация не должна требовать перезагрузки страницы. Однако мне действительно нужно место для подключения к стеку вызовов после завершения навигации по странице. Оптимальное решение дало бы мне знать, когда закончилась какая-либо навигация, как с другой страницы, так и внутри страницы, а также действия вперед/назад.
Мой лучший обходной путь до сих пор состоял в том, чтобы вызвать performSelector: withObject: afterDelay:
в конце моего метода shouldStartLoadWithRequest
, но я не доволен этим.
Кто-нибудь знает, как я могу решить это правильно? Любое понимание ценится!