2010-11-14 5 views
0

У меня есть UIWebView, а на одной странице есть компонент AJAX, содержимое которого изменяется, когда пользователь нажимает кнопку. Как узнать, когда содержимое загрузилось внутри UIWebView?Зная, когда загружен AJAX в UIWebView

+0

Итак, вы действительно хотите выполнить некоторый код iOS после того, как запрос ajax был успешным? – raidfive

+0

Да Я хочу выполнить код после загрузки AJAX. –

ответ

3

Вам нужно сделать две вещи:

  1. В коде JavaScript, имеют XMLHTTPRequest сигнал о том, что запрос AJAX в комплекте с пользовательским URL:

    var req = new XMLHttpRequest(); 
    req.open('GET', 'http://www.mozilla.org/', true); 
    req.onreadystatechange = function (aEvt) { 
        if (req.readyState == 4) { 
        if(req.status == 200) { 
         window.location = "myspecialurl:foo" 
        } 
        } 
    }; 
    
  2. В вашей native code, вам нужно будет выполнить делегат UIWebView, который прослушивает этот настраиваемый URL-адрес:

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
    { 
        if([[[request URL] absoluteString] isEqualToString:@"myspecialurl:foo"]) { 
        // Your code for when the AJAX request completes. 
        return NO; 
        } 
        return YES; 
    } 
    

Уверен, этот код анализирует/компилирует, но должен дать вам представление о том, как это сделать.

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