@@ -28,64 +28,62 @@ quickJS.close();
2828
2929##### QuickJS  
3030
31- 运行环境,可以创建多个运行时环境,不同的环境之间不能共享对象
31+ 运行环境,可以创建多个运行时环境,不同的环境之间不能共享对象,不使用的时候需要销毁。 
3232
3333``` java 
3434QuickJS  quickJS =  QuickJS . createRuntime();
3535``` 
3636
3737##### JSContext  
3838
39- 由 QuickJS 创建,一个 QuickJS 可以创建多个 JSContext。
39+ 由 QuickJS 创建,一个 QuickJS 可以创建多个 JSContext,不使用的时候需要销毁 。
4040
41+ ``` java 
42+ JSContext  context =  quickJS. createContext();
43+ int  result =  context. executeIntegerScript(" var a = 2+10;\n  a;" " file.js" 
44+ String  result =  context. executeStringScript(" 'Hello World';" " file.js" 
4145``` 
42- JSContext jsContext = quickJS.createContext(); 
43- ``` 
44- 
45- ##### JSValue  
46- 
47- 所有的 JS 类型的基类,比如 int、double、object、array等。
4846
4947##### JSObject  
5048
51- object 对应的类型
52- 
5349``` java 
54- JSObject  object =  new  JSObject (jsContext);
55- object. set(" name" " Wiki" 
56- object. set(" age" 18 );
57- 
58- Log . e(" QuickJS" String . valueOf(object. getString(" name" 
59- Log . e(" QuickJS" String . valueOf(object. getInteger(" age" 
50+ JSObject  user =  new  JSObject (context). set(" name" " Wiki" . set(" age" 18 );
51+ Log . e(" QuickJS" String . valueOf(user. getString(" name" 
52+ Log . e(" QuickJS" String . valueOf(user. getInteger(" age" 
53+ 
54+ user. registerJavaMethod(new  JavaVoidCallback () {
55+  @Override 
56+  public  void  invoke (JSObject  receiver , JSArray  args ) {
57+  Log . e(" QuickJS" . getString(0 ));
58+  }
59+ }, " log" 
60+ user. executeVoidFunction(" log" new  JSArray (context). push(" Hello World" 
6061``` 
6162##### JSArray  
6263
63- object 对应的类型
64- 
6564``` java 
66- JSArray  array =  new  JSArray (jsContext);
67- array. push(1 );
68- array. push(3.14 );
69- array. push(true );
70- array. push(" Hello World" 
71- 
72- Log . e(" QuickJS" String . valueOf(arr. getInteger(0 )));
73- Log . e(" QuickJS" String . valueOf(arr. getDouble(1 )));
74- Log . e(" QuickJS" String . valueOf(arr. getBoolean(2 )));
75- Log . e(" QuickJS" String . valueOf(arr. getString(3 )));
76- Log . e(" QuickJS" String . valueOf(arr. length()));
65+ JSArray  array =  new  JSArray (context). push(1 ). push(3.14 ). push(true ). push(" Hello World" 
66+ Log . e(" QuickJS" String . valueOf(array. getInteger(0 )));
67+ Log . e(" QuickJS" String . valueOf(array. getDouble(1 )));
7768``` 
7869
7970##### JSFunction  
8071
81- ``` 
82- ``` 
83- 
84- 
85- 
86- ### 注入方法  
87- 
88- ``` 
72+ ``` java 
73+ JSFunction  log =  new  JSFunction (context, new  JavaVoidCallback () {
74+  @Override 
75+  public  void  invoke (JSObject  receiver , JSArray  args ) {
76+  Log . e(" QuickJS" . getString(0 ));
77+  }
78+ });
79+ JSFunction  message =  new  JSFunction (context, new  JavaCallback () {
80+  @Override 
81+  public  Object  invoke (JSObject  receiver , JSArray  array ) {
82+  return  " Hello World" 
83+  }
84+ });
85+ context. set(" console" new  JSObject (context). set(" log" . set(" message" 
86+ context. executeVoidScript(" console.log(console.message())" null );
8987``` 
9088
9189
@@ -100,23 +98,32 @@ Log.e("QuickJS", String.valueOf(arr.length()));
10098
10199#### JSValue  
102100
103- 一切JS元素的基类 
101+ 对象会自动回收,开发者无需手动close() 
104102
105- |  方法 |  说明 | 
106- |  -------------------------------- |  ---------- | 
103+ |  方法 |  说明 | 
104+ |  -------------------------------------------- |  ----------------- | 
105+ |  static JSObject Undefined(JSContext context) |  获取Undefined对象 | 
106+ |  static JSValue NULL() |  获取NULL对象 | 
107+ |  TYPE getType() |  获取数据类型 | 
108+ |  boolean isUndefined() |  | 
107109
108110
109111#### JSObject  
110112
111113继承JSValue
112114
113- |  方法 |  说明 | 
114- |  ------------------------------------------------------------ |  ---------------------------------------------------- | 
115- |  set(key, value) |  设置属性 | 
116- |  getInteger/getBoolean/getDouble/getString/getArray/getObject |  提供了6个获取方法 | 
115+ |  方法 |  说明 | 
116+ |  ------------------------------ |  ----------------- | 
117+ |  set(key, value) |  设置属性,支持int、boolean、double、String、JSValue | 
118+ |  int getInteger(String key) |  返回值int对象值,如果没有就会返回0 | 
119+ |  boolean getBoolean(String key) |  返回值boolean对象值,如果没有就会返回false | 
120+ |  double getDouble(String key) |  返回值double对象值,如果没有就会返回0 | 
121+ |  String getString(String key) |  返回值String对象值,如果没有就会返回null | 
122+ |  JSArray getArray(String key) |  返回值JSArray对象值,如果没有就会返回null | 
123+ |  JSObject getObject(String key) |  可能会返回JSObject、JSArray、JSFunction,如果没有就会返回null | 
117124|  registerJavaMethod(JavaCallback callback, String jsFunctionName) |  注册JS函数,调用函数会执行java的Callback,带有返回值 | 
118125|  registerJavaMethod(JavaVoidCallback callback, String jsFunctionName) |  注册JS函数,调用函数会执行java的Callback,不带返回值 | 
119- |  executeFunction   |  一共提供了10个相关的方法,用于执行JS函数获取返回值 | 
126+ |  Object  executeFunction(String name, JSArray parameters)  |  一共提供了10个相关的方法,用于执行JS函数获取返回值 | 
120127|  boolean contains(String key) |  判断是否包含属性 | 
121128|  String[ ]  getKeys() |  获取所有的属性名称 | 
122129|  |  | 
@@ -128,19 +135,24 @@ Log.e("QuickJS", String.valueOf(arr.length()));
128135
129136|  方法 |  说明 | 
130137|  ------------------------------------------------------------ |  ----------------- | 
131- |  push(value) |  设置属性 | 
132- |  getInteger/getBoolean/getDouble/getString/getArray/getObject |  提供了6个获取方法 | 
138+ |  push(value) |  设置属性,支持int、boolean、double、String、JSValue | 
139+ |  int getInteger(String key) |  返回值int对象值,如果没有就会返回0 | 
140+ |  boolean getBoolean(String key) |  返回值boolean对象值,如果没有就会返回false | 
141+ |  double getDouble(String key) |  返回值double对象值,如果没有就会返回0 | 
142+ |  String getString(String key) |  返回值String对象值,如果没有就会返回null | 
143+ |  JSArray getArray(String key) |  返回值JSArray对象值,如果没有就会返回null | 
144+ |  JSObject getObject(String key) |  可能会返回JSObject、JSArray、JSFunction,如果没有就会返回null | 
133145|  length() |  数组大小 | 
134146
135147#### JSFunction  
136148
137149继承JSObject
138150
139- |  方法 |  说明   | 
140- |  ------------------------------------------------------------ |  -----------------  | 
141- |  push(value)     |  设置属性   | 
142- |  getInteger/getBoolean/getDouble/getString/getArray/getObject  |  提供了6个获取方法  | 
143- |  length()  |  数组大小   | 
151+ |  方法 |  说明 | 
152+ |  ------------------------------------------------------------ |  -------- | 
153+ |  JSFunction(JSContext context, JavaCallback callback)  |  构造函数  | 
154+ |  JSFunction(JSContext context, JavaVoidCallback callback)  |  构造函数  | 
155+ |  Object call(JSValue.TYPE type, JSObject receiver, JSArray parameters)  |  调用方法  | 
144156
145157#### JSContext  
146158
@@ -160,22 +172,6 @@ Log.e("QuickJS", String.valueOf(arr.length()));
160172
161173
162174
163- ## TODO   
164- 
165- -  增加NULL和未定义
166- 
167- 
168- 
169- 
170- 
171- 
172- 
173- 
174- 
175- 
176- 
177- 
178- 
179175
180176
181177
0 commit comments