Intereting Posts
Выясните идентификатор запущенного процесса по имени пакета Сделать Android-телефон позиционирующим как устройство ввода Bluetooth (мышь или клавиатура) Создание нового ожидающего намерения каждый раз в Android Bluetooth на Android: мой Socket.connect () блокирует навсегда, а Socket.close не разблокирует FindViewById (android.R.id.progress) возвращает null Как отключить состояние отключенного состояния Spinner? Изменение фрагментов и ориентации Как использовать типы сборки (debug vs release) для установки разных стилей и имен приложений? Как подключиться к Google OAuth2 с помощью Angularjs внутри Phonegap с помощью ClientID и ClientSecret Есть ли причины не использовать ломбок с андроид-студией Как получить все выбранные элементы списка, используя флажок Android: onPreviewFrame никогда не вызывается без SurfaceView Android Custom PopupWindow / Dialog Как получить серийные данные с помощью Android-bluetooth Обнаруживать поставщика телефона при установке

JavaScript в Android

Можно ли использовать JavaScript в Android? Если да, то как? Приведите несколько примеров.

Благодарю.

Solutions Collecting From Web of "JavaScript в Android"

Я опоздал на вечеринку здесь, но у меня была такая настоящая необходимость. IOS 7 теперь включает JavaScriptCore изначально, и он очень прост в использовании (несмотря на ограниченную документацию). Проблема в том, что я не хотел его использовать, если бы я не мог использовать что-то подобное на Android. Поэтому я создал проект Android . Он позволяет использовать код JavaScript на Android, не требуя громоздкого WebView и инъекции. Вы также можете плавно выполнять асинхронные вызовы между Java и Javascript.

Обновление 27 марта 17: AndroidUSore устарел в пользу LiquidCore . LiquidCore основан на V8, а не на JavascriptCore, но работает практически так же. См. Документацию по использованию LiquidCore в качестве механизма Javascript .

Из документации:

… чтобы начать, вам нужно создать JavaScript JSContext . Выполнение JS-кода происходит в этом контексте, а отдельные контексты представляют собой изолированные виртуальные машины, которые не взаимодействуют друг с другом.

 JSContext context = new JSContext(); 

Этот контекст сам по себе является объектом JavaScript. И как таковой, вы можете получить и установить его свойства. Поскольку это глобальный объект JavaScript, эти свойства будут находиться в контексте верхнего уровня для всего последующего кода в среде.

 context.property("a", 5); JSValue aValue = context.property("a"); double a = aValue.toNumber(); DecimalFormat df = new DecimalFormat(".#"); System.out.println(df.format(a)); // 5.0 

Вы также можете запустить JavaScript-код в контексте:

 context.evaluateScript("a = 10"); JSValue newAValue = context.property("a"); System.out.println(df.format(newAValue.toNumber())); // 10.0 String script = "function factorial(x) { var f = 1; for(; x > 1; x--) f *= x; return f; }\n" + "var fact_a = factorial(a);\n"; context.evaluateScript(script); JSValue fact_a = context.property("fact_a"); System.out.println(df.format(fact_a.toNumber())); // 3628800.0 

Вы также можете писать функции в Java, но подвергать их JavaScript:

 JSFunction factorial = new JSFunction(context,"factorial") { public Integer factorial(Integer x) { int factorial = 1; for (; x > 1; x--) { factorial *= x; } return factorial; } }; 

Это создает функцию JavaScript, которая вызовет factorial Java при вызове из JavaScript. Затем он может быть передан в виртуальную машину JavaScript:

 context.property("factorial", factorial); context.evaluateScript("var f = factorial(10);") JSValue f = context.property("f"); System.out.println(df.format(f.toNumber())); // 3628800.0 

Вы имеете в виду что-то вроде создания собственного приложения с помощью Javascript? Я знаю, что есть такие инструменты, как Titanium Mobile, которые позволяют создавать собственные приложения с помощью веб-инструментов / языков.

Вы также можете создавать веб-приложения. Для этого есть множество ресурсов и учебных пособий. Просто найдите «Учебник Android Web App» или что-то подобное.

Да, вы можете просто создать код завершения, который указывает на html-страницу и включает в себя ваш javascript и css.

Существуют разные библиотеки, которые могут помочь вам в этом: