0

Mon application iPhone a une page d'informations, qui contient un UIWebView, que je l'ai signalé à la page d'information de mon site:iPhone: l'extraction de texte à partir et disque-cache de la page Web récupérée

NSString *urlAddress = @"http://www.toneme.org/Software"; 
NSURL *url = [NSURL URLWithString: urlAddress]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL: url]; 

[self.webView loadRequest:requestObj]; 

Cependant, chaque fois l'utilisateur charge l'application, ils obtiendront un écran vide pour les âges jusqu'à ce qu'il récupère les données. Ce n'est pas bien.

Il serait préférable d'afficher la dernière page chargée, tout en essayant de récupérer une nouvelle version en arrière-plan. Mais je ne peux pas voir comment le faire proprement. Quelqu'un pourrait-il me faire démarrer?

Une deuxième question: pour l'iPhone, il n'est pas pratique d'afficher cette page dans un UIWebView, car la page contient trois volets; le tout ne va pas. Je veux vraiment extraire le texte de la page. Y a-t-il un moyen propre de le faire? Puis-je spécifier que je veux seulement télécharger le corps principal?

Je devine que la page entière est renvoyée en une seule chaîne, alors peut-être si je forme un couple de balises maison autour de mon texte, cela simplifierait l'extraction du texte manuellement ...

Répondre

1

fournir une API HTTP qui fournit le texte dans un certain format que vous pouvez analyser (ie, JSON, XML) qui vous permettra de télécharger ces données, de les stocker localement (plus sur cela en une seconde), et de construire une vue sur ces données téléchargées pour afficher Et jolie. :)

En ce qui concerne le stockage des données, regardez l'écriture d'une classe qui enregistre les données dans le répertoire Documents de votre application et gère les informations d'en-tête HTTP du serveur pour voir si le fichier doit être téléchargé à nouveau ou si c'est déjà à jour (cela peut être fait en utilisant etags idéalement, mais la date de dernière modification si etags ne sont pas supportés dans votre infrastructure).

1

Comme faire vous-même est sûrement possible, mais tout à fait un peu de travail pour obtenir le droit, vous pourriez vouloir vérifier AsiHTTPRequest et surtout ASIWebPageRequest

HTH

0

Vous devriez être en mesure d'enregistrer le contenu UIWebView et les données d'URL dans un fichier pour les réutiliser dans la méthode de délégué webViewDidFinishLoad en utilisant

NSString *myHtml = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"]; 
Questions connexes