shouldOverrideUrlLoading funktioniert nicht/catch-link klickt, während die Seite geladen wird
Ich bin mit WebViewClient.shouldOverrideUrlLoading zu fangen alle link-Klicks in der Webansicht. Dies funktioniert über 95% der Zeit, aber manchmal ist es einfach nicht aufgerufen.
Ich es mitbekommen habe in diesen drei Umständen:
- Wenn der link zu der Seite, die Sie bereits auf. Dieses ist nicht eine wirklich große Sache, und es ist ein bug gemeldet, für die es.
- Während die Seite noch geladen wird, wenn der Benutzer auf einen link klickt, es nur selten fängt ihn auf. Es wird nur den link zu öffnen, ohne jemals Aufruf
shouldOverrideUrlLoading
. - Zufällig. Beim Experimentieren mit diesem in den letzten paar Monaten habe ich bemerkt, dass es manchmal einfach nicht fangen. Es ist selten, aber es geschieht.
Nun meine Frage ist meist wie kann man das problem 2, da die anderen sind weniger eine große Sache. Allerdings, wenn jemand gelöst hat entweder 1 oder 3 ich würde mich freuen, davon zu hören.
Außerdem sollte ich erwähnen, dass ich habe versucht, verschiedene Rückgabewerte in shouldOverrideUrlLoading
und ich habe bemerkt, dass immer true zurückgeben, scheint das beste Ergebnis zu erzielen, aber die Fragen oben noch passieren.
InformationsquelleAutor der Frage cottonBallPaws | 2011-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der HTML-Code Ihre eigenen sind, können Sie ersetzen Sie alle traditionellen verbindungen mit anrufen, um Ihre eigenen Java-Objekt, injiziert in die
WebView
überaddJavascriptInterface()
. Dann werden Sie nicht mehr darauf angewiesen, aufshouldOverrideUrlLoading()
.Ansonsten vielleicht versuchen zu verhindern, dass der Nutzer die Interaktion mit der Seite bis
onPageFinished()
.Habe ich nicht dieses problem, aber ich habe nicht machte umfangreiche Verwendung von
WebView
mit beliebigem Inhalt.InformationsquelleAutor der Antwort CommonsWare
Ich hatte ein ähnliches Problem bei dem Versuch, ändern Sie die Webseite mit js auf der Seite, ändert
window.location
. Stellt sich heraus, dass die änderung der url-Schema/Protokoll macht die webview fangen aufshouldOverrideUrlLoading
. Ich weiß, das hilft dir zwar nicht, da Sie nicht selbst den HTML, aber ich dachte, es würde helfen, jemand anderes, stößt auf dieses problem.InformationsquelleAutor der Antwort Grantland Chew