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

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

07.05.2017, 20:08. Просмотров 298. Ответов 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
Ответы с готовыми решениями:

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

Как организовать сохранение данных при регистрации
Здравствуйте! Делаю регистрационную форму. Регистрация состоит из нескольких...

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

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

Как подключить к приложению уже готовую базу данных в Android Studio?
Здравствуйте. Есть готовая модель базы данных, созданная в ERwin Data Modeler,...

1
Анд_Рей
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 177
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

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

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

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


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

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

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