Подтвердить что ты не робот

UIWebView завершена загрузка Event

Можно ли запустить событие, когда UIWebView (Iphone) завершил загрузку URL-адреса.

Как узнать, текущий URL-адрес UIWebView?

4b9b3361

Ответ 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, для загрузки рекламных баннеров неограниченно или для автоматической трансляции баннеров или для реализации видеоигры сама идея создания "сделанной загрузки" является неправильной.