Knowing when AJAX has loaded in UIWebView

前端 未结 1 875
鱼传尺愫
鱼传尺愫 2021-01-17 03:36

I have a UIWebView and one page has an AJAX component whose content changes when the user clicks a button. How can I know when the content has loaded inside the

相关标签:
1条回答
  • 2021-01-17 04:26

    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 讨论(0)
提交回复
热议问题