知道何时在 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的主要内容,如果未能解决你的问题,请参考以下文章