Android WebView Inject Javascript vor dem Laden von HTML

9

Ich verwende Android WebView, um einige Webseiten zu laden. Ich muss ein Stück Javascript-Code auf alle Seiten einfügen, bevor sie geladen werden.

Ich versuche, sie auf WebViewClient onPageStart Callback zu injizieren.

%Vor%

HTML-Code:

%Vor%

Ich habe erwartet, dass mein Js-Code vor HTML geladen wird. Aber manchmal wird der JS-Code nach HTML geladen.

Gibt es eine Möglichkeit, mein Problem zu lösen?

    
wayne_bai 28.12.2012, 04:31
quelle

6 Antworten

3

Was ist mit dem Laden Ihrer Seite über Javascript?

Erstellen Sie eine leere HTML-Seite in Ihren Assets, die Ihr Skript und diese kleine Funktion enthält (ich benutze hier jQuery, aber Sie können ein anderes Framework oder gar kein Framework verwenden).

%Vor%

Dann auf Ihrer Android App:

%Vor%

Hinweis: Ich habe nicht bemerkt, dass xxx.html auch in Ihren Assets sein könnte und nicht irgendwo auf einem Webserver, in diesem Fall wird die Ajax-Abfrage aus Sicherheitsgründen fehlschlagen, aber Sie können die Ajax-Anfrage vergessen, Sie lesen html Seite in String von Ihrer Android-App und übergeben Sie es als Argument an eine leicht modifizierte Javascript-Funktion.

    
Thomas 10.01.2013 18:50
quelle
2

Ich hatte das gleiche Problem und habe es gelöst. Ich verstecke WebView vor dem Laden und zeige nach der geladenen Seite.

%Vor%     
sagus_helgy 29.06.2016 12:20
quelle
0

Sie können versuchen, Ihr Java-Skript innerhalb HTML-Seite dann verwenden Android Java Script-Funktionsaufruf könnte hilfreich sein

    
Bhavdip Sagar 28.12.2012 06:03
quelle
0

Eine Möglichkeit, vielleicht nicht die einfachste, besteht darin, einen HttpClient zu verwenden, um die Daten vom Webserver selbst zu lesen und sie dann zu ändern und sie mit

in den Webview zu setzen %Vor%     
yoah 09.01.2013 17:49
quelle
0

Ich würde eine Kombination aus Phonegap und einer Schnittstelle für JavaScript verwenden.

Fügen Sie in der Hauptdatei .java in OnCreate () Folgendes ein:

%Vor%

Und dann, in der .js-Datei, schließen Sie das ein (Sie müssen Phonegap natürlich in derselben Datei importieren, um die onDeviceReady-Methode abzufangen):

%Vor%

Dies würde Ihre Methode von JavaScript auslösen, wenn das Gerät bereit ist, im ersten Moment des Starts der Anwendung.

    
luisfer 10.01.2013 12:41
quelle
0

Sie können
webView.addJavascriptInterface("test string", "output");
verwenden um das gewünschte Objekt zu injizieren, bevor die Webseite geladen wird.

    
SharpZhang 18.04.2016 03:37
quelle

Tags und Links