ios - with - serviceworker example
Almacenamiento en caché de páginas web de UIWebView para verlas sin conexión (2)
En primer lugar, estoy bastante seguro de que he revisado todas las respuestas aquí y que nada hace lo que me gustaría hacer.
- En esta pregunta, para la respuesta se da ASIHTTPRequest que es proyecto muerto. ( ¿Cómo descargo una página web completa (con imágenes) en el iPhone? )
- En esta pregunta, el usuario propuso RNCachingURLProtocol, que es realmente genial, pero tuve algunos problemas después de cerrar la aplicación completamente (cerrándola en la barra de tareas). Después de eso no obtuve css ni imágenes, solo se cargó html. ( Almacene en caché una única página web para usar cuando esté fuera de línea en Xcode / UIWEBVIEW ).
Hay pocas respuestas más pero ninguna es buena. Debe haber alguna implementación simple para lo que estoy buscando.
Me gustaría: Cuando la aplicación se abre, carga alguna página web. Quiero guardar esa página web completamente. Ahora el usuario puede salir o hacer lo que quiera (simplemente no desinstalar). Mientras exista alguna conexión a Internet (verifico que uso la clase de accesibilidad), la página web se carga normalmente y se está guardando. SI EL USUARIO abre la aplicación y NO hay conexión a Internet, solo quiero mostrar el mensaje de que "podría no estar actualizado bla bla boa" y mostrar la página completa y guardada que se guardó la última vez que la aplicación tiene conexión a Internet.
¿Cuál sería la mejor manera (actualizada) de guardar una página web completa? He encontrado algo sobre MKNetworkKit pero no estoy seguro de cómo usarlo. Cualquier ayuda sería apreciada.
Parece que el almacenamiento en caché estándar no es lo suficientemente bueno porque no tiene control sobre lo que se almacenará en caché y por cuánto tiempo. La forma más fácil de resolver esto es crear su propio meganismo de almacenamiento en caché al anular el NSURLCache. Puede encontrar alguna documentación al respecto en http://nshipster.com/nsurlcache/ y una muestra en http://github.com/evermeer/EVURLCache Esa muestra incluso le permite usar un caché previamente rellenado que puede incluirse en su aplicación instalar.
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];
El sistema de carga de URL proporciona un caché compuesto en el disco y en la memoria de las respuestas a las solicitudes. Este caché permite que una aplicación reduzca su dependencia de una conexión de red y aumente su rendimiento.