2016-04-18 4 views
0

У меня есть приложение, которое отображает статический HTML-файл, который входит в приложение.Использование статического файла в качестве шаблона в веб-виде Android

В файле HTML есть определенные строки, которые я хотел бы изменить в зависимости от значения счетчика.

Строки в следующем формате:

{{string1}} {{ строка2}} ... {{}} stringx

Если строка может встречаться несколько раз.

Возможно ли найти и заменить на веб-просмотр в результате изменения счетчика с помощью прослушивателя?

Как бы я это сделал?

Можно ли каким-либо образом запустить java-script в html, чтобы это произошло?

В качестве дополнительного примечания я мог бы изменить формат HTML-файла, если это поможет мне выполнить мои цели.

ответ

0

Есть две возможности.

Первый: загрузка html в виде строки с использованием метода loadDataWithBaseURL и выполнения строковых операций.

Во-вторых: добавление addJavascriptInterface к веб-просмотру. link

Пример Первая:

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

Не могли бы вы опубликовать некоторые примеры кода для первого метода? – earnshae

+0

Спасибо, я попробую код, если он сработает. Я отметю его правильно. Если нет, я задам больше вопросов :) – earnshae

+0

Хорошо, ваш метод правильный, и все работает, но у меня была одна небольшая проблема с Utils.readertoString (r); Вы имели в виду apache IOUtils? Или Utils - пользовательская библиотека? В итоге я использовал Guava, так как у меня это было в проекте, как видно по ссылке. http://www.baeldung.com/java-convert-reader-to-string Сделайте корректировку кода, чтобы кто-либо, ссылаясь на этот ответ, не смущался, и я буду отмечать его как правильно. – earnshae