在开发Android应用程序时,是否可以引用javax.script.ScriptEngine库?如果不行,是否有任何方式可以在Android中评估JavaScript表达式?
在开发Android应用程序时,是否可以引用javax.script.ScriptEngine库?如果不行,是否有任何方式可以在Android中评估JavaScript表达式?
new SomeScriptEngienFactory().getScriptEngine()
来获取引擎。我已经成功地使用JNLua 1.0.4和Rhino 1.7R2完成了这个过程。javax.script.ScriptEngine不是Android的默认部分,但是您可以轻松地将任何需要的库打包成JAR文件(假设大小合理,我不确定),并将它们包含在您的项目中。
在Windows中使用Android开发工具包,我执行了以下步骤来获取javax.script库。
然后加载了javax.script。
如果你想在Android中评估一些JS代码
1)将以下内容添加到 gradle 依赖项中 (rhino):
compile 'org.mozilla:rhino:1.7R4'
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应用程序中运行(包括函数等)。