2010-04-06 13 views
2

웹 페이지가 변경되었는지 확인하려면 웹 페이지의 콘텐츠 길이를 사용하려고했지만 그렇게 할 방법을 찾지 못했습니다. 어떤 아이디어? 아니면 웹 페이지가 변경된 경우 정기적으로 확인하는 다른 방법을 생각할 수 있습니까?UIWebView에서 콘텐츠 길이 가져 오기

답변

6

변경된 내비게이션이 발생했다면 사용자 정의 UIWebViewDelegate을 사용하고 예를 들어 플래그를 설정할 수 있습니다. -(void)webViewDidFinishLoad:이 발생했습니다.

URL이 실제로 다른지 확인하려면 UIWebView의 속성 request을 확인하십시오.

콘텐츠가 변경되었는지 확인하려는 경우 콘텐츠를 검색 할 수 있습니다. 예 : 예 :

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를 GET 대신 HEAD로 설정하십시오. 클래스를 해당 요청으로 생성 된 NSURLConnection의 대리자로 설정하십시오. 다음 위임 콜백을 처리하고 응답에서 헤더를 검사하십시오. 자세한 내용은

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

은 이쪽을 봐 :

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