知道何时在 UIWebView 中加载了 AJAX

Posted

技术标签:

【中文标题】知道何时在 UIWebView 中加载了 AJAX【英文标题】:Knowing when AJAX has loaded in UIWebView 【发布时间】:2010-11-14 20:12:20 【问题描述】:

我有一个UIWebView,一个页面有一个AJAX 组件,当用户单击按钮时,它的内容会发生变化。我如何知道内容何时加载到 UIWebView 中?

【问题讨论】:

那么,您实际上是想在 ajax 请求成功后执行一些 ios 代码? 是的,我想在 AJAX 加载后执行代码。 【参考方案1】:

你需要做两件事:

    在您的 javascript 代码中,使用自定义 URL 使用 XMLHTTPRequest 表示 AJAX 请求已完成:

    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"
         
        
    ;  
    

    在您的本机代码中,您需要实现一个 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;
    
    

不保证此代码可以解析/编译,但应该让您知道如何去做。

【讨论】:

以上是关于知道何时在 UIWebView 中加载了 AJAX的主要内容,如果未能解决你的问题,请参考以下文章

是否可以知道在 Visual Studio 2013 中加载了多少个类型的对象

UIWebView加载页面

UIWebview 中传入的提要自动刷新

如何获取 UIWebView 中元素的位置?

UIWebView:获取 Webview 内容大小?

确定子表单/子报表是不是在 MS Access 中加载了表单或报表