2010-04-06 67 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