//注意:将值封装到V8Array中传给addPlayer方法(只有一个参数,因此push一个值)
V8Array push = new V8Array(runtime).push(player3);
int size = hockeyTeam.executeIntegerFunction(“addPlayer”, push);
//JS result size = 3
Log.e(TAG, "JS result size = "+size);
players.close();
player1.close();
player2.close();
player3.close();
push.close();
hockeyTeam.release();
runtime.close();
}
- java调用JavaScript函数(多个参数)
/**
- java调用JavaScript函数(多个参数)
*/
private void exeJsFunctionBase() {
V8 runtime = V8.createV8Runtime();
runtime.executeVoidScript(“” +
“function add(a,b){” +
" return a + b" +
“}”);
V8Array v8Array = new V8Array(runtime).push(10).push(40);
int add = runtime.executeIntegerFunction(“add”, v8Array);
Log.e(TAG, "JS result add = "+add);
v8Array.close();
runtime.close();
}
- java调用JavaScript函数(V8Function调用call)
/**
-
java调用JavaScript函数(V8Function调用call)
-
在JS中万物皆对象,函数也不例外。在 j2v8 中,一切 js 对象都用 V8Object 表示,
-
我们可以直接将其强制转换为 V8Function。
-
-
V8Function 表示的就是一个 js 函数对象,它拥有 call() 方法可以直接被调用。
*/
private void exeJsFunctionBaseCall() {
V8 runtime = V8.createV8Runtime();
runtime.executeVoidScript(“” +
“function add(a,b){” +
" return a + b" +
“}”);
//先判断 add是不是一个函数
if (runtime.get