2010-04-06 6 views
2

Je cherche à savoir si une page Web a changé, j'allais utiliser la longueur du contenu de la page Web, mais je n'ai pas vu un moyen de le faire. Des idées? Ou quelqu'un peut-il penser à un autre moyen de vérifier périodiquement si une page Web a changé?Obtenez la longueur du contenu de UIWebView

Répondre

6

Si vous voulez dire que si la navigation a été modifiée, vous pouvez utiliser un UIWebViewDelegate personnalisé et définir un indicateur lorsque, par ex. -(void)webViewDidFinishLoad: est survenu.

Vous pouvez vérifier la propriété UIWebViewrequest pour vérifier si l'URL diffère réellement.

Si vous souhaitez vérifier si le contenu a été modifié, vous pouvez le récupérer, par ex. comme ceci:

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

Ou de récupérer la longueur, par ex. comme ceci:

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

Je suppose que vous voulez savoir si la page Web que vous êtes déjà montrant est différente de la page Web que vous obtiendriez si vous frappez à nouveau le serveur.

Vous ne pouvez pas faire grand-chose avec les interfaces documentées dans UIWebView.

Vous pouvez utiliser un NSURLConnection pour demander uniquement les en-têtes d'une page Web et non le contenu réel. Une fois que vous avez les en-têtes, regardez les champs comme "Last-Modified" et "Content-Length" pour voir si cela a changé. Vous pouvez également regarder dans le code de réponse 304 non modifié.

Définissez le HTTPMethod d'un nouveau NSURLRequest sur HEAD au lieu de GET pour ne pas obtenir le corps. Définissez votre classe en tant que délégué d'une connexion NSURLConnection créée avec cette requête. Gérez le rappel de délégué suivant et examinez les en-têtes dans la réponse.

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

Pour plus d'informations regarder ici:

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

Questions connexes