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

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

07.05.2017, 20:08. Показов 1888. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2017, 20:08
Ответы с готовыми решениями:

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

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

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

1
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 183
07.05.2017, 23:13
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.05.2017, 23:13
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru