2016-04-18 11 views
0

Ich habe eine Anwendung, die eine statische HTML-Datei anzeigt, die in der Anwendung enthalten ist.Verwenden einer statischen Datei als Vorlage in einer Android-Webansicht

Die HTML-Datei enthält bestimmte Zeichenfolgen, die ich basierend auf dem Wert eines Drehfelds ändern möchte.

Die Saiten sind wie folgt formatiert:

{{String1}} {{String2}} ... {{}} stringx

Wenn eine Zeichenfolge mehrfach auftreten können.

Ist es möglich, ein Suchen und Ersetzen in der Webansicht als Ergebnis eines Spinnerwechsels mithilfe eines Listeners durchzuführen?

Wie würde ich das machen?

Wäre es möglich, irgendwie Java-Script im HTML-Code auszulösen, um dies zu ermöglichen?

Als Subnote könnte ich das Format der HTML-Datei ändern, wenn es mir helfen würde, meine Ziele zu erreichen.

Antwort

0

Es gibt zwei Möglichkeiten.

Zuerst: Laden Sie HTML als String mit der Methode LoadDataWithBaseURL und führen Sie String-Operationen aus.

Zweitens: Hinzufügen von addJavascriptInterface zu webview. link

Beispiel für Erstens:

InputStream is = getApplicationContext().getAssets().open(“my.html"); 
Reader r = new InputStreamReader(is); 
int size = is.available(); 
char[] buffer = new char[size]; 
r.read(buffer); 
r.close(); 
String data = new String(buffer); 

data = data.replace(“%stringData%”,replaceData); 

webview.loadData(data, "text/html", null); 
+0

Könnten Sie einige Beispiel-Code für das erste Verfahren posten? – earnshae

+0

Danke Ich werde den Code versuchen, wenn es funktioniert Ich werde es richtig markieren. Wenn nicht, werde ich weitere Fragen stellen :) – earnshae

+0

Okay, Ihre Methode ist korrekt und alles scheint zu funktionieren, aber ich hatte ein kleines Problem mit Utils.readertoString (r); Meintest du apache IOUtils? Oder ist Utils eine benutzerdefinierte Bibliothek? Ich landete Guava seit ich es in dem Projekt hatte, wie in der Verknüpfung zu sehen. http://www.baeldung.com/java-convert-reader-to-string Machen Sie eine Anpassung an den Code, so dass jeder, der sich auf diese Antwort bezieht, nicht verwirrt wird, und ich werde es als richtig markieren. – earnshae

Verwandte Themen