Android WebView canGoBack immer wahr

Ich habe ein WebView, das Social Media Seiten lädt. Ich habe die Back-Taste überschrieben, um die goBack Methode auf der WebView aufzurufen, bis canGoBack() false zurückgibt. Dann ruft es super.onBackPressed() . Das Problem ist, dass Twitter und YouTube Javascript so verwenden, dass canGoBack() true zurückgibt true wenn man die Back-Taste 4 mal wirklich schnell canGoBack() .

Ich habe versucht, die ursprüngliche URL mit der aktuellen URL zu überprüfen, aber die Seite hat eine andere URL als die, die eingegangen wird.

Kennt jemand einen Weg, um die Back-Taste rufen Sie die WebView goBack Methode, bis Sie am Anfang sind, dann rufen Sie super.onBackPressed ?

  • Android-Back-Taste und MediaController
  • Bestimmen Sie, ob die Aktivität vor der Navigation zurückgekehrt ist
  • Wie kann ich Javascript von Android anrufen?
  • Android-Ansicht verschwindet, indem du draußen klickst
  • Wie bekomme ich den Rückschlüssel in meinem CustomView
  • Android - Wie man einen Aktivitätsübergang animiert, wenn die Standard-Rücktaste gedrückt wird
  • Wie können wir eine Javascript-Funktion ausführen und einen Rückgabewert in unserer Android-Anwendung erhalten?
  • Android - Simulieren Sie die Rücktaste
  • One Solution collect form web for “Android WebView canGoBack immer wahr”

    Nun, es ist nicht ideal, aber du kannst die Navigationsgeschichte manuell verfolgen, indem du ein Array (oder nur eine ganze Zahl erhöht und verringert) und die aktuelle URL in sie jedes Mal, wenn es ändert und Pop die letzte URL von ihm, wenn Sie die drücken Zurück-Taste, und wenn das Array leer ist (oder die Ganzzahl 0 ist) rufen Sie super.onBackPressed() .
    Um Code auszuführen, wenn sich die URL ändert, können Sie die Methode boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request) des WebViewClient ( Link zur Dokumentation ).
    Auf diese Weise können die Webseiten Javascript nicht stören, wie Sie mit dem Back-Button umgehen.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.