ich eine App, wo Benutzer einen Stapel von lokal gespeicherten HTML Dateien navigieren können. Ich habe eine UIWebView
, richtig konfiguriert mit einer UIWebViewDelegate
. Wenn der Benutzer einem Link folgt, wird normalerweise shouldStartLoadWithRequest
aufgerufen, gefolgt von webViewDidFinishLoad
ein wenig später.UIWebViewDelegate: webViewDidFinishLoad nicht während der in-Seitennavigation genannt
Wenn jedoch der Link auf einen Anker auf der gleichen Seite verweist, der gerade angezeigt wird, wird nur shouldStartLoadWithRequest
aufgerufen. webViewDidFinishLoad
feuert nicht.
In gewissem Sinne, ich sehe, dass dies Verhalten erwartet werden kann, da In-Page-Navigation kein Seiten-Neuladen erfordern sollte. Allerdings brauche ich wirklich einen Ort, an dem ich mich in den Call-Stack einhaken kann, nachdem die In-Page-Navigation abgeschlossen ist. Die optimale Lösung würde mich wissen lassen, wann irgendeine Art von Navigation beendet wurde, sowohl von einer anderen Seite als auch von In-Page- und Vorwärts-/Rückwärtsaktionen.
Meine beste hackaround bisher war performSelector: withObject: afterDelay:
am Ende meiner shouldStartLoadWithRequest
Methode, aber ich bin nicht glücklich damit.
Weiß jemand wie ich das richtig lösen kann? Jeder Einblick geschätzt!
Ich sehe nicht, dass die sentainStartLoadWithRequest für Ankerklick aufgerufen wird, nur ganze Seite lädt. Ich bin neugierig, ob sich dieses Verhalten geändert hat, oder wenn nicht, muss ich etwas falsch machen. – Jason