WebView loadUrl funktioniert nur einmal
EDIT: ich arbeitete an diesem Projekt vor Jahren und leider kann ich nicht überprüfen, wenn keine der Antworten ist das arbeiten in dem gegebenen Szenario.
Ich bin mit harten Zeit mit einer WebView, die zeigen, sollte unseren blog. Wenn initilized, funktioniert es Prima. Die Benutzer navigieren können, um verschiedene Verknüpfungen innerhalb der WebView. Um wieder auf den blog, dort gibt es einen button außerhalb der WebView, die geladen werden sollen der Haupt-blog-Seite wieder.
Das problem ist, dass nichts geladen wird, nachdem der zweite Aufruf loadUrl. Hier ist mein code:
private WebView wv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.blog);
wv = (WebView) findViewById(R.id.blog_webview);
wv.getSettings().setJavaScriptEnabled(true);
wv.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon {
MyLog.logDump("onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
MyLog.logDump("onPageFinished: " + url);
}
});
wv.loadUrl(Constants.BLOG_URL);
}
Die Funktion, die aufgerufen durch meine OnClickListener ist folgende:
public void reLoadUrl() {
wv.loadUrl(Constants.BLOG_URL);
}
Aber trotz, dass die Protokolle in onPageFinished und onPageStarted zeigen, dass meine wv.loadUrl aufgerufen wird und, dass es laden Sie die richtige url, die Inhalte in der Webansicht selbst nicht ändern. Ich habe versucht, das löschen des cache, die Geschichte, die Sicht, die versucht, verschiedene WebSettings, versucht, webView.goBack() - kein Ergebnis. Auch diese Ideen funktionieren nicht: Seltsam webview goBack Problem in android
Manchmal, die reLoadUrl zeigt das gewünschte Ergebnis, aber wenn es fehlschlägt, es kann nicht mehr gemacht werden, wieder zu arbeiten. Irgendwelche Ideen, was könnte passiert sein? Ich habe versucht zu Lesen, die WebView-code, aber ich konnte nichts finden, dass mir helfen könnte.
Das einzige, was ich hinzufügen kann, ist, dass wir mit einigen ad-Netzwerken, die stark abhängig sind webViews - ich habe versucht, schalten Sie diese ab, aber ich wusste nicht, entfernen Sie die Bibliotheken, so bin ich nicht sicher, dass Sie nicht die Schuldige ist.
Irgendwelche Ideen??
InformationsquelleAutor der Frage Elena | 2013-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nutzen Sie die exakten unten in der Reihenfolge.
InformationsquelleAutor der Antwort user1621629
Ich habe in den letzten Tag oder so arbeiten an einer Anwendung, die genutzt einem WebView. Ich habe ein paar Probleme mit dem laden von Daten in die WebView.
Ich bin mir nicht ganz sicher, dass dies funktionieren würde, aber vielleicht ersetzen Sie diesen code:
}
mit diesem code:
public void reLoadUrl() {
}
vielleicht, wenn Sie klar die WebView es das Problem lösen wird
InformationsquelleAutor der Antwort Javacadabra
Ich würde vorschlagen, Sie versuchen, die Wiederherstellung des
WebView
jedes mal, wenn Sie es verwenden, und sehen, ob das einen Unterschied macht.Ersten speichern, Kontext, layout parms und Eltern.
Dann stoppen Sie das laden und entfernen Sie die Ansicht aus dem übergeordneten Element.
Dann neu und füge es wieder.
Dass möglicherweise andere Eigenschaften, die Sie wiederherstellen müssen, aber das ist die Allgemeine Idee.
InformationsquelleAutor der Antwort James Holderness
Versuchen, laden Sie eine leere Seite vor:
Bearbeiten:
Dies ist ein code, den ich vorher benutzt, weil ich Probleme hatte, mit diesem zu, versuchen Sie es bitte.
InformationsquelleAutor der Antwort Elad92
Versuchen Sie es mit einer WebChrome client. Die webview braucht Unterstützung von WebChrome Clint, um richtig zu arbeiten in einigen Fällen.
InformationsquelleAutor der Antwort Sagar Waghmare
Nur eine Methode, in der Sie bündig ein erneutes initialisieren ganze WebView und rufen Sie es von
reLoadUrl().
InformationsquelleAutor der Antwort bakriOnFire
InformationsquelleAutor der Antwort Nagaraja
Ich bin vor dem gleichen Problem und habe es funktioniert, indem Sie die folgenden Schritte aus:
und ich habe das mehrere url erfolgreich geladen.
InformationsquelleAutor der Antwort Brijesh Thakur
Ich Stand vor dem gleichen problem und schließlich in der Lage zu verwalten, um dieses Problem zu lösen.Ich bin neu auf android nicht sicher, ob dies gut oder schlecht ist, aber es funktioniert für mich.Ich habe einfach clearen von web-Ansicht und zerstören und neu erstellen, bevor Sie nachladen einer anderen url .
Obwohl mWebView.destroy(); erzeugt eine Fehlermeldung "java.lang.Throwable: Fehler: WebView.destroy() aufgerufen wird, während noch an!" und ich Suche es aber nicht bekommen, eine Lösung und viele sagen, es berührt nicht die Anwendung bis jetzt(ich weiß zwar noch nicht lösen, diese N. B: ich nutze WebChromeClient ) .
InformationsquelleAutor der Antwort Engr. Hasanuzzaman Sumon
Ich hatte das gleiche Problem, ruft resumeTimers() das problem bei mir gelöst...
InformationsquelleAutor der Antwort Tinsel
In
onCreate
anstelle vonwv.loadUrl(Constants.BLOG_URL);
, verwenden Sie einfachwv.loadDataWithBaseURL(baseUrl, readFileAsString("index.html") , mimeType, "UTF-8", null);
InformationsquelleAutor der Antwort AshuKingSharma
War ich vor dem gleichen Problem. Ich habe eine neue Webview-jedes mal. Eben erst zerstören Sie Ihre bisherigen webView, bevor Sie eine neue erstellen. Ich hoffe, dies hilft!!
Machen Sie Ihre webview eine Globale variable. Wie -
Webview w;
dann vor dem erstellen einer neuen webview nur zerstören die Vorherige
InformationsquelleAutor der Antwort Agr1909
Rufen Sie diese Methode in
onPause()
InformationsquelleAutor der Antwort Dhaiyur
Ich Stand vor dem gleichen Problem und keines der obigen Lösung funktionierte für mich. So habe ich es behoben, durch das Neuladen WebView mithilfe von JavaScript wie folgt:
JavaScript muss aktiviert werden, damit die WebView:
InformationsquelleAutor der Antwort N-JOY