我的博客原文地址
本文译自Registering Java Callbacks with J2V8,并加入了自己的一些理解。
使用 J2V8 时是可以使用 JavaScript 来调用 Java 的方法的,下面就介绍一些如何注册 Java 的回调函数来供 JavaScript 调用。
回调函数
在 JavaScript 中,函数也即是对象,可以被操作也可以被传递。在使用 J2V8 时,任何的 JavaScript 方法都可以映射到 Java 的方法之上,当这些方法被调用时,J2V8 就会调用 Java 的方法来代替,并把参数传递给 Java 的方法。
注册 Java 方法
Java 的方法可以通过两种方法注册为回调函数,可以通过实现 JavaCallback
接口来实现(如果没有返回值时,也可以通过 JavaVoidCallback
来实现),或者是反射地把已经实现的 Java 方法注册为回调函数。
JavaCallback
先来看下面一段代码:
V8 v8 = V8.createV8Runtime();
JavaVoidCallback callback = new JavaVoidCallback() {
public void invoke(final V8Object receiver, final V8Array parameters) {
if (parameters.length() > 0) {
Object arg1 = parameters.get(0);
Log.e("Test&#