2011-02-02 4 views
4

Если я пытаюсь получить URL-адрес из webView при вызове метода webViewDidStartLoad, я получаю пустую строку. Вот мой код:Получение URL-адреса при вызове webViewDidStartLoad?

- (void)webViewDidStartLoad:(UIWebView *)webView 
{ 
    NSURL* url = [webView.request URL];  
    const char* urlchar = [[url absoluteString] UTF8String]; 

    // do stuff with urlchar... 
} 

Это тот же код, который я использую в webViewDidFinishLoad и что, кажется, работает. Это правильный метод? Есть ли способ лучше? Должен ли я ожидать получения действительного URL-адреса, когда он будет вызван?

ответ

2

Это правильный путь. Аргумент webView, предоставленный в этом методе делегата, позволяет получить доступ к UIWebView, которые начали запрос. В качестве побочного примечания этот метод вызывается при загрузке изображений, сценариев и других ресурсов на странице (один раз на ресурс). Чтобы убедиться, что страница полностью завершена, проверьте свойство loading.

+0

Я знаю, что вы говорите, что это правильный путь, но я вижу то же самое, что и OP ... URL-адрес пуст. Это ошибка? – JimRoepcke

+1

Попробуйте использовать 'webView: shouldStartLoadWithRequest: navigationType:'. –

+0

Ну, я хочу показать ожидающий UIActivityIndicatorView, поэтому я пытаюсь запустить этот индикатор в методе webViewDidStartLoad. и у меня также есть строка url.query, чтобы определить, нужен ли этот индикатор. – meadlai

Смежные вопросы