在android中引用javax.script.ScriptEngine或计算javascript表达式
在开发android应用程序时,是否可以引用javax.script.ScriptEngine库?在android中引用javax.script.ScriptEngine或计算javascript表达式,javascript,android,scriptengine,Javascript,Android,Scriptengine,在开发android应用程序时,是否可以引用javax.script.ScriptEngine库? 如果没有,是否有可能在android中计算javascript表达式?Java构建路径添加它 这些类将允许您的JSR223兼容引擎进行编译。然后可以执行新的SomeScriptEngienFactory.getScriptEngine以获得引擎。我用JNLua 1.0.4和Rhino 1.7R2成功地做到了这一点 可以从下载文件jsr223.jar,如果您想在android中评估JS中的一些代码,
如果没有,是否有可能在android中计算javascript表达式?
然后加载Javax.script。对于类Javax.script.ScriptEngine、Javax.script.ScriptEngineFactory等,您可以将jsr223.jar添加到Android项目中:只需将.jar文件复制到libs目录,然后从属性->Java构建路径添加它 这些类将允许您的JSR223兼容引擎进行编译。然后可以执行新的SomeScriptEngienFactory.getScriptEngine以获得引擎。我用JNLua 1.0.4和Rhino 1.7R2成功地做到了这一点 可以从下载文件jsr223.jar,如果您想在android中评估JS中的一些代码,可以使用直接链接。 1到您的gradle依赖项添加: 2编写一些这样的代码以获得JS评估的结果
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您可以用JS编写更复杂的脚本,以便在android应用程序中运行,还可以运行其他功能。您可以发布一个示例应用程序吗?
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()
}