Tout d'abord, je suis presque sûr d'avoir vérifié toutes les réponses ici et rien ne fait ce que j'aimerais faire.
Il y a peu de réponses supplémentaires mais aucune n'est bonne. Il doit y avoir une implémentation simple pour ce que je recherche.
Je voudrais: Lorsque l'application s'ouvre, elle charge une page Web. Je veux enregistrer complètement cette page Web. L'utilisateur peut maintenant quitter ou faire ce qu'il veut (mais pas désinstaller). Tant qu'il y a une connexion Internet (je vérifie que l'utilisation de la classe d'accessibilité), la page Web se charge normalement et elle est enregistrée. SI L'UTILISATEUR ouvre l'application et qu'il n'y a PAS de connexion INTERNET, je veux juste montrer un message "il se peut qu'il ne soit pas à jour bla bla boa" et afficher une page Web enregistrée et complète qui a été enregistrée la dernière fois que l'application a une connexion Internet.
Quelle serait la meilleure façon (à jour) de sauvegarder une page Web complète. J'ai trouvé quelque chose sur MKNetworkKit mais je ne sais pas comment l'utiliser. Toute aide serait appréciée.
Il semble que la mise en cache standard ne soit pas assez bonne car vous n'avez aucun contrôle sur ce qui sera mis en cache et pendant combien de temps. La façon la plus simple de résoudre ce problème est de créer votre propre méganisme de mise en cache en remplaçant NSURLCache. Vous pouvez trouver de la documentation à ce sujet sur http://nshipster.com/nsurlcache/ et un exemple sur http://github.com/evermeer/EVURLCache Cet échantillon même vous permet d'utiliser un cache pré-rempli qui peut être inclus dans l'installation de votre application.
NSString *stringurl=[NSString stringWithFormat:@"http://www.google.com"];
NSURL *url=[NSURL URLWithString:stringurl];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:15.0];
[uiwebview loadRequest:theRequest];
Le système de chargement d'URL fournit un cache composite sur disque et en mémoire des réponses aux demandes. Ce cache permet à une application de réduire sa dépendance à une connexion réseau et d'augmenter ses performances.