UIWebView завершена загрузка Event
Можно ли запустить событие, когда UIWebView (Iphone) завершил загрузку URL-адреса.
Как узнать, текущий URL-адрес UIWebView?
Ответы
Ответ 1
Да, это возможно. Используйте протокол UIWebViewDelegate
и реализуйте в своем деле следующий метод:
- (void)webViewDidFinishLoad:(UIWebView *)webView
Если вам нужен URL-адрес, вы можете получить последний запрос, используя свойство request
:
webView.request.URL
Ответ 2
Ни один из найденных решений не работал у меня.
Затем я нашел этот пример, который по крайней мере работает намного лучше, чем любое другое решение, которое я нашел в Google/StackOverflow.
uiwebview-load-completion-tracker
Ответ 3
Очень простой метод:
Шаг 1: Установите делегат UIWebViewDelegate
в файл заголовка.
Шаг 2: Добавьте следующий webViewDidFinishLoad
метод для получения текущего URL-адреса webview
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"Current URL = %@",webView.request.URL);
//-- Add further custom actions if needed
}
Ответ 4
Ответ на Pascal для части "получение URL-адреса" в порядке.
Однако!
Из документации UIWebViewDelegate, от Apple:
"webViewDidFinishLoad: отправлено после завершения веб-представления загрузки фрейма".
Рамка!= Страница.
webViewDidFinishLoad вызывается, когда страница "сделана загрузка". Его также можно назвать много раз до этого. Загрузка страницы с Amazon.com может генерировать десяток вызовов в webViewDidFinishLoad.
Если вы контролируете источник страницы, тогда вы можете сделать тест нагрузки для него, и он будет работать в этом случае. Если вам все равно, что вы вызываете "после загрузки страницы", тогда webViewDidFinishLoad является достаточным.
Для произвольных страниц, с произвольным JavaScript, для загрузки рекламных баннеров неограниченно или для автоматической трансляции баннеров или для реализации видеоигры сама идея создания "сделанной загрузки" является неправильной.