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

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

【问题讨论】:

  • 那么,您实际上是想在 ajax 请求成功后执行一些 iOS 代码?
  • 是的,我想在 AJAX 加载后执行代码。

标签: ajax cocoa-touch ios uiwebview


【解决方案1】:

你需要做两件事:

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

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

【讨论】:

    猜你喜欢
    • 2012-07-31
    • 2010-12-12
    • 2010-11-12
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多