Descargue la página web completa en iOS SIN usar ASIHTTPRequest

¿Hay alguna alternativa a ASIWebPageRequest en la biblioteca ASIHTTPRequest que pueda usar para download una página web completa en iOS, incluidos los files CSS, JavaScript y de image, etc.? No puedo encontrar una class similar en el marco de AFNetworking y hasta ahora mis búsquedas no han tenido éxito. No puedo usar ASIHTTPRequest ya que no puedo hacer que funcione en absoluto en ninguna de mis aplicaciones, no hay ejemplos que he encontrado que funcionen para iOS7 y prefiero usar algo más reciente de todos modos.

Básicamente, quiero almacenar una página web entera localmente en un directory en el iPhone / iPad para que un usuario pueda editarlo localmente y luego enviar el directory completo a su server web. El usuario también debe poder ver la página web en cualquier momento en una UIWebView.

Si esto no es posible, tendré que download el file HTML y luego analizarlo para encontrar las URL de los resources externos, luego downloadlos por separado. Prefiero no hacer esto, pero si tengo que hacerlo, ¿cuál es la mejor biblioteca para lograr esto?

Gracias a cualquiera que me ayude.

Parece que estás buscando algo así como wget pero no estoy seguro de si puedes hacerlo en iOS.

Puede usar el método nativo NSString stringWithContentsOfURL:encoding:error: para search el HTML de una página web.

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/clm/NSString/stringWithContentsOfURL:encoding:error :

Puede interceptar todas las requestes HTTP realizadas desde su aplicación a través de un NSURLProtocol personalizado. Deberás expandir este concepto, pero aquí hay una class simple que, al caer en tu proyecto, desconectará todas las requestes que se realicen (por ejemplo, desde una UIWebView).

 @interface TSHttpLoggingURLProtocol : NSURLProtocol @end @implementation TSHttpLoggingURLProtocol + (void) load { [NSURLProtocol registerClass: self]; } + (BOOL) canInitWithRequest: (NSURLRequest *) request { NSLog( @"%@", request.URL ); return NO; } @end 

Puede ampliar esto y realizar las requestes desde la implementación del protocolo (consulte https://github.com/rnapier/RNCachingURLProtocol para get un ejemplo más completo). O bien, puede rastrear las requestes y downloadlas usted mismo más tarde.

No hay una manera fácil de asociar un controller de protocolo como este con una instancia particular de UIWebView. Vas a interceptar TODAS las requestes en la aplicación con esto. (Advertencia: en iOS7, los protocolos pueden registrarse en NSURLSessions específicas; para estos, creo que un controller de protocolo registrado globalmente no interceptará).

Usaría un UIWebView y cachearía todas las Solicitudes que hace