Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
MotAlex
1 / 1 / 0
Регистрация: 03.12.2014
Сообщений: 19
#1

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

07.05.2017, 20:08. Просмотров 165. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2017, 20:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как организовать передачу данных между JS и Studio? (Программирование Android):

Как сделать передачу данных по bluetooth - Программирование Android
Создал приложение на телефон, которые отправляет на моего домашнего робота &quot;1&quot;, плата которая стоит в роботе запрограммирована под Basic....

Как организовать сохранение данных при регистрации - Программирование Android
Здравствуйте! Делаю регистрационную форму. Регистрация состоит из нескольких частей: 1 ФИО и контакты 2 Дополнительная информация ...

Android Studio Как подключить свою базу данных - Программирование Android
База данных *.sqlite Нужна помощь гуру, как образом это реализуется, не обязательно код, хотя бы объяснения

Как реализовать передачу массива из одного фрагмента в другой - Программирование Android
Здравствуйте, как реализовать передачу массива из одного фрагмента в другой?

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

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

1
Анд_Рей
3 / 4 / 0
Регистрация: 27.12.2009
Сообщений: 163
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2017, 23:13
Привет! Вот еще темы с ответами:

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

Посредством чего организовать передачу данных из одного приложения в другое - C++ WinAPI
С другом придумали что-то вроде игры: один пишет программу которая запрашивает пароль(замок), другой - программу которая подберёт этот...

Как организовать передачу пакетов - Java Сети
Здравствуйте. Есть такой вопрос. По каким критериям вы посылаете пакеты с командами и ведете их распознание? Как вы распаршиваете...

Как организовать передачу на вал 6000 об/мин? - Электродвигатели
Добрый день! Собственно вопрос: имеется коллекторник 24 В, к нему присоединен (соосно) вал, который является электродом. С вала снимается...


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

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

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