¿Es posible hacer referencia a la biblioteca javax.script.ScriptEngine al desarrollar una aplicación de Android? Si no, ¿hay alguna manera posible de evaluar una expresión javascript en android?Referencia javax.script.ScriptEngine en Android o evaluar una expresión javascript
Respuesta
javax.script.ScriptEngine no es una parte predeterminada de Android, pero podría fácilmente archivar las bibliotecas que necesite (suponiendo que el tamaño es razonable, no estoy seguro) e incluirlas en su proyecto.
Según este post, javax.script.ScriptEngine no está disponible en Android SDK. Puede intentar los pasos a continuación para incluir la biblioteca, pero es posible que el código no se ejecute, aunque se compile.
Utilizando Android Development Toolkit en Windows, realicé los siguientes pasos para obtener la biblioteca javax.script.
- Al hacer clic derecho en el proyecto, se dirigió a Propiedades (Proyecto).
- En la ruta de compilación de Java, elegí la pestaña Bibliotecas.
- Seleccione Agregar biblioteca situada en la parte central derecha de la ficha
- Select System Library JRE bajo Agregar Biblioteca y haga clic en Siguiente ...
- Seleccionar espacio de trabajo predeterminado JRE (jre 7)
- Haga clic en Finalizar.
- Haga clic en Aceptar en la ruta de compilación de Java para existir las propiedades del proyecto.
Se cargó Javax.script.
Para las clases javax.script.ScriptEngine, javax.script.ScriptEngineFactory y demás, puede agregar el jsr223.jar a su proyecto de Android: simplemente copie el archivo .jar en su directorio libs y añádalo desde Properties -> Ruta de compilación Java.
Esta clase permitirá compilar los motores que cumplen con JSR 223. A continuación, puede hacer new SomeScriptEngienFactory().getScriptEngine()
para obtener un motor. He logrado hacer esto con JNLua 1.0.4 y Rhino 1.7R2.
El archivo jsr223.jar se puede descargar desde http://www.java2s.com/Code/Jar/j/Downloadjsr223jar.htm, un enlace directo es http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip.
Si desea evaluar un cierto código de JS en Android
1) a sus dependencias Gradle añadir (rhino):
compile 'org.mozilla:rhino:1.7R4'
2) escribir un código como este para obtener el resultado de JS evaluación
Context rhino = Context.enter()
// turn off optimization to work with android
rhino.optimizationLevel = -1
String evaluation = "2+2"
try {
ScriptableProject scope = rhino.initStandardObjects()
String result = rhino.evaluateString(scope, evaluation, "JavaScript", 1, null).toString()
} finally {
Context.exit()
}
3) Puede escribir secuencias de comandos más complejas en JS para ejecutar en la aplicación de Android también (diversión ctions, etc.)
- 1. Evaluar una cadena como expresión matemática en JavaScript
- 2. Evaluar expresión condicional
- 3. Evaluar expresión citada en F #
- 4. evaluar una expresión aritmética almacenada en una cadena (C#)
- 5. Evaluar la expresión simbólica
- 6. ¿Mejor algoritmo para evaluar una expresión matemática?
- 7. Android: utilice WebView para evaluar una cadena de javascript y devuelva el valor
- 8. ¿Cómo puedo evaluar una expresión XPath en Silverlight?
- 9. ¿Cómo evaluar una sola expresión en modo Haskell para Emacs?
- 10. Cómo evaluar una expresión matemática personalizada en Python
- 11. Cómo evaluar una expresión en notación de prefijo
- 12. Analizador de Javascript para una expresión simple
- 13. Evaluar la expresión de Sympy de una matriz de valores
- 14. Cómo evaluar el código Javascript en Python
- 15. ¿Evaluar solo un tipo de cabeza particular en la expresión?
- 16. evaluar la expresión antes de que se ponga en lambda
- 17. evaluar mediante programación una expresión de frijoles con expresión de Primavera Idioma
- 18. ¿Evaluar en captador de propiedades o al crear una instancia?
- 19. Rhino y acceso concurrente a javax.script.ScriptEngine
- 20. ¿Cómo evaluar una IP?
- 21. 'esto' referencia en JavaScript
- 22. Referencia a grupos coincidentes anteriores dentro de una expresión regular
- 23. expresión Javascript en paréntesis
- 24. Excepción de referencia nula en una expresión de LINQ dinámico
- 25. subconsulta en una expresión lambda o LINQ
- 26. Ejemplo de una referencia circular en Javascript?
- 27. Python - Evaluar la expresión matemática dentro de la cadena
- 28. ¿Cómo hacer referencia a una expresión dividida en Perl?
- 29. javascript cómo crear la referencia
- 30. JavaScript: Error - "Esperaba una asignación o llamada de función y en su lugar vio una expresión"?
¿Puedes publicar una aplicación de muestra? –