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