2016-03-20 9 views
0

Ich versuche direkt nach dem Laden von Daten in meine Webansicht über webView.loadDataWithBaseURL(), Javascript in meine Webansicht einzufügen, aber ich weiß nicht, wann die Daten tatsächlich geladen sind. Ist diese Methode synchron? Kann ich mich darauf verlassen, dass die Daten sofort geladen werden, da sie aus dem Speicher kommen? Ich frage, weil es so aussieht, als würde mein injiziertes Javascript keine Elemente auf der Seite sehen. Ich gehe davon aus, dass die Ansicht nicht geladen wurde, bevor der JS injiziert wurde. (Ich muss das noch beweisen.)Benachrichtigen über webView.loadDataWithBaseURL()

Antwort

1

Sie können einen WebViewClient mit Ihrem WebView unter Verwendung von setWebViewClient() registrieren und dessen onPageFinished() implementieren, um zu wissen, wann die Seite fertig geladen ist.

+0

Ich habe alles getan. Wie oben erwähnt, werden diese Callbacks nicht aufgerufen, wenn ich die Methode loadDataWithBaseURL zum Laden meiner Daten aus dem Speicher verwende. Meine Frage ist, ob ich einen Rückruf erwarten kann oder ob die Daten sofort geladen werden. – Cliff

+0

Sie haben onPageFinished oder andere Callbacks nicht erwähnt, also ging ich mit der ersten offensichtlich fehlenden Komponente. WebView rendert Async in seinen eigenen Threads, weshalb Sie sich auf die Rückrufe verlassen müssen. Wenn Sie genauere Daten darüber haben, was genau Sie tun und was nicht wie erwartet funktioniert, aktualisieren Sie Ihre Frage, um dies zu berücksichtigen. Das Hinzufügen von Code hilft immer. –

+0

Hoppla, ich nehme an, ich habe es nicht erwähnt, es war in meinem Kopf, aber habe es nie geschafft! Meine aufrichtige Entschuldigung! Ja, ich habe Rückrufe registriert, aber keine werden aufgerufen. Ich glaube, dass diese Art des Ladens von Webseiten etwas Besonderes ist. – Cliff