Ответ Паскаля на часть «получение URL» в порядке.
Тем не менее!
Из документации UIWebViewDelegate от Apple:
"webViewDidFinishLoad: отправляется после того, как веб-представление завершает загрузку фрейма."
Frame! = Page.
webViewDidFinishLoad вызывается, когда страница «загружена». Его также можно вызывать много раз до этого. Загрузка страниц с Amazon.com может генерировать десяток вызовов webViewDidFinishLoad.
Если вы управляете источником страницы, вы можете выполнить для него нагрузочный тест, и в этом случае он будет работать. Если вы заботитесь только о том, чтобы вас вызывали «после загрузки страницы», тогда webViewDidFinishLoad подходит.
Для произвольных страниц, с произвольным JavaScript, непрерывной загрузкой рекламных баннеров, автоматической прокруткой баннеров или реализацией видеоигры, сама идея того, что страница «загружается», ошибочна.