WebView zurück Geschichte ohne Umleitungen
Ich implementierte android webview und onKeyDown-Methode für die zurück-Taste. (Es implementiert webview.goBack();
)
Mein problem ist genau das, ähnlich wie die Frage in diesem post weiter unten (keine Antworten)
So Steuern Sie die Android WebView Geschichte/back-stack?
PROBLEM - Wenn ich drücken Sie die zurück-Taste, webview
wählt die Vorherige URL, aber wenn die URL war eigentlich ein redirect, es geht in diesem Teufelskreis/Schleife. Wenn man sich bei chrome oder stock browser es richtig handhabt, zurück, ohne wieder auf die Umleitungen.
Wie können diese gelöst werden?
Beispiel: gehe zu gap.com. Wählen Sie dann "My Gap "Kreditkarte". Dies öffnet einen redirect-link und dann auf der letzten Seite. Wenn ich nun auf zurück, geht es nie zu Gap.com home-Seite.
Anregungen...
Zusätzliche Informationen: ich habe in der Umsetzung der shouldOverrideUrlLoading
. Wenn ich entfernen Sie diese Methode, es scheint gut zu funktionieren, aber mit dieser Methode ist es nicht...
BrowserActivity.java
oder Controller.java
.stackoverflow.com/a/24189935/2620328
InformationsquelleAutor jrebecca1 | 2013-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich gerade getestet, auf jellybean und es scheint zu funktionieren.
Im wesentlichen, Wann immer eine neue URL geladen wird, die in der WebView wird eine Kopie des url.
Auf die nächste URL-Anforderung, überprüfen Sie uns nicht bereits auf dieser Seite, wenn Sie sind, dann gehen Sie zurück in die webview-Geschichte ein weiterer Schritt.
Das ist im wesentlichen, sich auf die übergabe von url, in den override-Schritt wird die url umgeleitet, sondern als die endgültige url umgeleitet.
InformationsquelleAutor Gaunt Face
Ich hoffe, dass diese Antwort, wenn jemand noch auf der Suche für Sie.Ich hatte die Jagd zu beheben ähnliche Probleme in meinem Projekt und hatte versucht mehrere Ansätze, wie mit
- WebView.HitTestResult
- Drücken Sie die urls in der Liste
- onKeyDown und so weiter...
Ich denke, die meisten, es würde funktionieren, wenn die app besteht nur aus der webview. Aber mein Projekt war eine Kombination von native und webview und verarbeitet einheitlichen schema.
Im wesentlichen festgestellt, dass der Schlüssel, wie Sie Sie überschreiben Sie die Methode shouldOverrideUrlLoading. Da ich wollte, dass meine app zu Griffen einige der urls und der webview zu behandeln einige der anderen, vor allem der Rücken Handhabung.Ich benutzte eine Flagge für den Rücken so etwas wie ..
In dieser Weise, wenn es einen redirect, wenn Sie auf zurück klicken, dann ist es false zurück und somit verspottet das Verhalten von webview. Zur gleichen Zeit, stellen Sie sicher, dass die isBackPressed auf false festgelegt ist, nachdem die Seite fertig geladen ist.
Hoffe, das hilft !!
InformationsquelleAutor Anupama VK