Tengo problemas para cargar HTML personalizado en mi UIWebView
sin romper su método goBack
.¿Se puede interceptar las solicitudes NSURL en un UIWebView sin romper el botón Atrás?
lo que funciona
estoy interceptando las peticiones de URL de mi UIWebView
por lo que puede cargar HTML personalizado. Tengo control sobre todo el HTML, así que tengo mis solicitudes de aplicaciones especiales que usan un esquema personalizado (es decir, myapp://arg1/?arg2=val
) que puedo analizar en webView:shouldStartLoadWithRequest:navigationType:
. Decido qué HTML realmente quiero cargar y llamo al loadHTMLString:baseURL
y devuelvo NO
para cancelar la solicitud original.
lo que no funciona
Los trabajos anteriores grandes. El problema es que quiero utilizar el método UIWebView's
goBack
y loadRequest:
parece ser el único método UIWebView
que se agrega a su pila de historial.
Tengo algunas ideas, pero no estoy seguro de cuáles son factibles y cómo abordarlas. Lo principal parece ser que tengo que devolver YES
en webView:shouldStartLoadWithRequest:navigationType
y tengo que usar el método loadRequest
.
Idea 1: Modificar NSURLRequest/Respuesta: ¿Puedo subclase NSURLRequest modo que (cuando el UIWebView hace la solicitud) que en realidad no hacen una petición HTTP y devuelve un NSURLResponse con mi HTML en ella? ¿O tal vez modificar/subclase/agregar un método de categoría a NSURLResponse de alguna manera? Me gusta la idea de que sea una solicitud real, pero me preocupan las API privadas y el rechazo de la App Store.
Idea 2: manejar el protocolo URL personalizada Registra un protocolo URL personalizada para que mi aplicación responde a la misma y que puede tener que devolver un NSURLResponse legítima
Idea 3 (lleno de mi HTML personalizada.) : Engañar a la caché Crear la solicitud con esta política de caché NSURLRequestReturnCacheDataDontLoad
y de alguna manera obtener mi HTML entre WebView y la caché?
¿O tal vez estoy en el camino equivocado por completo?
se le ocurrió una buena solución? Si es así, ¿qué fue? –
Ver mi nueva respuesta. – zekel