开发者

Knowing when AJAX has loaded in UIWebView

I have a UIWebView and one page has an AJAX component whose content changes when the user clicks a 开发者_JS百科button. How can I know when the content has loaded inside the UIWebView?


You'll need to do two things:

  1. In your JavaScript code, have the XMLHTTPRequest signal that the AJAX request is complete with a custom 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. In your native code, you'll need to implement a UIWebView delegate that listens for this custom 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;
    }
    

No assurances this code parses/compiles but should give you the idea how to do it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜