这是基于ScriptWrapper的已经适配的脚本引擎
| Language | Name | Repo | State |
|---|---|---|---|
| javascript | rhino | Rhino | 完全适配 |
| javascript | v8 | J2V8 | 基本适配 |
| lua | androlua+ | AndroLua_pro | 完全适配 |
使用上都大致相同
ScriptWrapper提供了ScriptEngineManager,可以通过ScriptEngineManager获取ScriptEngine,这里用Factory
Create Engine
val engine=RhinoEngineFactory.newScriptEngine().apply{
create()
//...
}Use requirer
engine.requirer.addFindPath([App.srcDir])
engine.requirer.require("module.js")Use Bridge
val a=engine.varBridge.get("a")?.getString()
val f=engine.funcBridge.get("sum")?.call(1,2)?.getInteger()Use Evaluator
val a=engine.stringEvaluator.eval("var a=1+2\nreturn \"ok\"","scriptName",0)?.getString()
val a2=engine.fileEvaluator.eval(file)?.getString()
val a3=engine.readerEvaluator.eval(FileReader(file))?.value