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:
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" } } };
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.
精彩评论