Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 03.12.2014
Сообщений: 19
1

Как организовать передачу данных между JS и Studio?

07.05.2017, 20:08. Просмотров 1139. Ответов 1
Метки нет (Все метки)

JS лежит внутри asset/www/файл. Нужно чтоб ПЕРЕД загрузкой файлика в WebView в него передавались некие переменные.
Еще бы уметь получать данные обратно по нажатию кнопки на Layout'е.
Как организовать подобное?

Была идея заменить переменные при помощи replace() но когда попытался прочесть файл и вывести текст тостом

Java
1
2
3
4
5
6
7
8
9
10
11
try {
            AssetManager assetManager = this.getAssets();
            InputStreamReader istream = new InputStreamReader(assetManager.open("www/mapka.html"));  //файлик хоть и HTML но внутри имеется JS в котором и нужно проводить передачу переменной
            BufferedReader in = new BufferedReader(istream);
            Toast.makeText(Kontakti.this,""+in,Toast.LENGTH_LONG).show();
 
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
он выдал: java.io.BufferedReader@e1f341d
Отсюда я сделал вывод что WebView не читает mapka.html как текст а загружает его как файл и замену произвести не получится.
Может быть как то можно изменить сам файл в asset так чтоб когда WebView читал его он видел уже нужные переменные?Если можно то как это сделать?
В общем приму любые идеи как организовать подобное и если можно то с примером.

Добавлено через 8 часов 57 минут
Нашел решение проблемы.

Java
1
2
3
4
5
6
7
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/test.html");
webview.setWebViewClient(new WebViewClient(){
    public void onPageFinished(WebView view, String url){   
        webview.loadUrl("javascript:init('" + theArgumentYouWantToPass + "')");
    }           
});
test.html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
</head>
 
<body>
hola
adios
</body>
 
<script type="text/javascript">
 
    function init(val){
// Do whatever you want with your parameter val
    }
</script>
</html>
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2017, 20:08
Ответы с готовыми решениями:

Как организовать передачу данных между объектами разных классов?
Есть объект doc в нутрии него создается еще два объекта ui и engine, engine в свою очередь создает...

Как правильно организовать передачу данных между компонентами для формы
Приветствую, у меня вопрос скорее к подходу. Дано компонент с формой, где много различных полей....

Как организовать передачу файлов между КПК и ноутбуком через блютуз?
Включил блютуз и там и там, ноут обнаружил КПК, предложил ввести на КПК такой-то пароль из цифр,...

Как организовать передачу данных на NRF24L01+?
Нигде так и не написано внятно как же организовать передачу, то есть сам процесс инициализации...

1
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 183
07.05.2017, 23:13 2
Java
1
WebView.addJavascriptInterface(jsInterface, "JSInterface");
и

Java
1
2
3
4
5
6
7
8
9
10
private class JavaScriptInterface {
 
        JavaScriptInterface() {
        }
 
        @JavascriptInterface
        void func1(int var1) {
 
        }
}
а в джаваскрипте

Java
1
JSInterface.func1(132);
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2017, 23:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как организовать скрытую передачу данных?
Есть необходимость передавать данные о срабатывании оборудования без использования звука и не...

Как организовать бесправодную передачу данных протяжностью 400 км
Добрый день! Возможно ли организовать беспроводную передачу данных протяжностью 400 км. Допустим я...

Как осуществить передачу данных между формами?
например есть первое окно с листбоксом и кнопкой по нажатию на кнопку открывается другая форма с...

Как реализовать передачу данных между аккаунтами?
Всем привет. Даже не знаю в какой раздел поместить вопрос У меня есть сайт на локалке, в нем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.