1 public void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 Context cx = Context.enter();//当前线程上下文创建 4 5 // 初始化标准对象function object 等等 6 // 这个事必须执行的 7 Scriptable scope = cx.initStandardObjects(null); 8 9 // 现在可以执行js脚本了 10 Object result = null; 11 try { 12 result = cx.evaluateString(scope, "obj = {a:1, b:['x','y']}", 13 "MySource", 1, null); 14 } 15 catch (JavaScriptException jse) { 16 // 异常代码 17 } 18 //获取全局对象,类似浏览器js里的window 19 FlattenedObject global = new FlattenedObject(scope); 20 //获取obj对象 21 FlattenedObject f = (FlattenedObject) global.getProperty("obj"); 22 23 // 打印结果"obj == result" 24 Log.d("javascript","obj " + (f.getObject() == result ? "==" : "!=") + 25 " result"); 26 27 // 打印结果"f.a == 1" 28 Log.d("javascript","f.a == " + f.getProperty("a")); 29 30 FlattenedObject b = (FlattenedObject) f.getProperty("b"); 31 32 // 打印结果 "f.b[0] == x" 33 Log.d("javascript","f.b[0] == " + b.getProperty(new Integer(0))); 34 35 // 打印结果 "f.b[1] == y" 36 Log.d("javascript","f.b[1] == " + b.getProperty(new Integer(1))); 37 38 try { 39 //打印结果{a:1, b:["x", "y"]} 40 Log.d("javascript",f.callMethod("toString", new Object[0])); 41 } catch (PropertyException e) { 42 // ignore 43 } catch (NotAFunctionException e) { 44 // ignore 45 } catch (JavaScriptException e) { 46 // ignore 47 } 48 49 cx.exit(); 50 }
请下载rhino源码包
地址ftp://ftp.mozilla.org/pub/mozilla.org/js/older-packages/rhino14R3.zip
添加js.rar包到android 工程下
简单测试一下