Dans mon application iPhone, j'ai un UIWebView sur lequel je charge un code html local. Tout fonctionne très bien, mais maintenant je veux être capable de gérer les liens locaux (aux notes de bas de page): quand je clique sur un lien local, je veux pouvoir passer à la note de bas de page référencée, puis pouvoir revenir .UIWebView shouldStartLoadWithRequest seulement appelé une fois?
<a href="#tofootnote">jump to footnote</a>
Je me suis occupé en ajoutant mon code pour intercepter et shouldStartLoadWithRequest clics sur les liens locaux; quand on clique sur un lien local, je travaille ma magie (cache des éléments d'interface utilisateur, ajoute un bouton de retour, etc.); cliquer sur le bouton retour me ramène à l'emplacement d'origine dans le document html.
Le problème est que cliquer une fois de plus sur le lien n'appelle plus shouldStartLoadWithRequest. À savoir, le code suivant:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"foo bar");
return YES;
}
n'affiche « foo bar » UNE FOIS (en fait, à deux reprises - la première fois que je charge d'abord le document), mais seulement une fois par la suite, peu importe combien de fois je m en cliquant sur le lien local
Donc, à moins que quelqu'un n'ait une meilleure explication, je devine que UIWebView met en cache le document ou le lien ou quelque chose et n'appelle plus le gestionnaire après l'appel initial; Si c'est le cas, comment puis-je effacer ce cache interne? (sans recharger le document)
PS. Je charge l'UIWebView en utilisant loadHTMLString (car j'ai besoin de configurer l'URL de base), donc je ne peux pas configurer la politique de cache pour la demande de chargement d'origine. – Alex
En fait, même l'utilisation de la requête urlrequest et de la politique de cache ne fonctionne toujours pas. Aidez-moi, s'il vous plaît! – Alex