android和javascript结合的开始

 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 工程下

 

简单测试一下

 

posted @ 2013-08-29 16:34  HeiMan  阅读(358)  评论(0编辑  收藏  举报