En mi aplicación de iPhone, tengo un UIWebView donde estoy cargando un html local. Todo funciona bien, pero ahora quiero poder manejar enlaces locales (a notas al pie): cuando hago clic en un enlace local, quiero poder saltar a la nota al pie de página referida por él, y luego poder volver .UIWebView shouldStartLoadWithRequest solo se llamó una vez?
<a href="#tofootnote">jump to footnote</a>
manejé esto añadiendo mi código para shouldStartLoadWithRequest e interceptar clics de enlace locales; cuando se hace clic en un enlace local, trabajo mi magia (ocultar algunos elementos de la interfaz de usuario, agregar un botón de retroceso, etc.); al hacer clic en el botón Atrás, vuelvo a la ubicación original en el documento html.
El problema es que al hacer clic UNA VEZ MÁS en el enlace ya no se invoca shouldStartLoadWithRequest. Es decir, el código siguiente:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"foo bar");
return YES;
}
sólo muestra "foo bar" ONCE (en realidad, dos veces - la primera vez que estoy cargando inicialmente el documento), pero sólo una vez después, independientemente del número de veces que' m haciendo clic en el enlace local
Entonces, a menos que alguien tenga una mejor explicación, supongo que UIWebView almacena en caché el documento o enlace o algo así y ya no llama al manejador después de la llamada inicial; Si este es el caso, ¿cómo puedo borrar esta caché interna? (sin volver a cargar el documento)
PS. Estoy cargando UIWebView utilizando loadHTMLString (porque necesito configurar el URL baseURL), por lo que no puedo configurar la Política de caché para la solicitud de carga original. – Alex
En realidad, incluso el uso de urlrequest y la política de caché aún no funciona. ¡Ayudame por favor! – Alex