So stoppen Sie die Ausführung von JavaScript in Android Webview

8

Szenario: Ich habe eine Aktivität mit einem WebView. Jedes Mal, wenn ich diese Aktivität starte, wird HTML-Inhalt innerhalb der WebView gerendert. Ich injiziere auch Javascript in WebView, das Code mit DomContentLoaded-Ereignis-Listener enthält.

Problem: Das Problem ist, dass Javascript manchmal viel Zeit in WebView benötigt. Dies geschieht zufällig nicht jedes Mal. Meistens lädt es sehr schnell auf. Aber manchmal dauert es für den gleichen Inhalt 20 Sekunden, um ausgeführt zu werden. Wenn ich jetzt in diesem Zustand von der Aktivität zurückgehe und sie erneut starte, wird Javascript in WebView nicht geladen, da die vorherige JS-Ausführung noch nicht abgeschlossen ist. Ich muss die App beenden und neu starten, damit das WebView funktioniert. Wie erhole ich mich von diesem Zustand, ohne die App zu beenden? Ich habe versucht, es mit dem folgenden Code zu stoppen, aber keiner von ihnen hat funktioniert. Irgendwelche anderen Vorschläge?

%Vor%     
Vivek 30.07.2014, 17:47
quelle

2 Antworten

3

Sie könnten versuchen, Javascript vorübergehend auszuschalten und dann wie folgt wieder einzuschalten:

%Vor%

Wenn Sie jedoch versuchen, Ressourcen in einem WebView zu bereinigen, lautet die Dokumentation:

  

Verwenden Sie WebView.loadUrl ("about: blank"), um den Status der Ansichtszustände und der Seitenressource (einschließlich laufendem JavaScript) zuverlässig zurückzusetzen.

Ссылка

    
VERT9x 26.02.2015 21:37
quelle
0

Google sagt in der Dokumentation: Ссылка

Verwenden Sie WebView.loadUrl ("about: blank"), um den Zustand des Ansichtsstatus und der Seitenressource (einschließlich laufendem JavaScript) zuverlässig zurückzusetzen.

%Vor%     
urSus 18.09.2017 18:53
quelle