2010-04-06 74 views
2

我正在查找网页是否发生了变化,我打算使用网页的内容长度,但还没有看到这样做的方法。有任何想法吗?或者任何人都可以想办法定期检查网页是否发生了变化?从UIWebView获取内容长度

回答

6

如果您的意思是发生了变化,您可以使用自定义UIWebViewDelegate并设置一个标志,例如, -(void)webViewDidFinishLoad:发生。

您可能想检查UIWebView的属性request以检查URL实际上是否有所不同。

如果你想检查更改的内容,你可以检索它,例如像这样:

NSString* script = @"document.body.innerHTML"; 
NSString* content = [webView stringByEvaluatingJavaScriptFromString:script]; 

或者检索例如像这样:

NSString* script = @"document.body.innerHTML.length"; 
int length = [[webView stringByEvaluatingJavaScriptFromString:script] integerValue]; 
0

我假设你想知道你是否已经显示出网页比网页,如果你再打服务器,你会得到不同的。

你不能用UIWebView中记录的接口做很多事情。

您可以使用NSURLConnection来请求网页的标题而不是实际的内容。获取标题后,查看“Last-Modified”和“Content-Length”等字段以查看它是否已更改。您还可以查看304未修改的响应代码。

将新的NSURLRequest的HTTPMethod设置为HEAD而不是GET来获取主体。 将您的类设置为使用该请求创建的NSURLConnection的委托。 处理以下委托回调并检查响应中的标题。

-(void) connection:(NSURLConnection *)inConnection didReceiveResponse:(NSURLResponse *)inResponse; 

欲了解更多信息,请看这里:

http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol