调用方法
关于 JavaScript 和 Java 如何互相调用,请参考官方文档 如何在 Android 平台上使用 JavaScript 直接调用 Java 方法
JavaScript 调用 Java 原理分析
首先看一下 jsb.reflection.callStaticMethod
方法。
这个方法的定义在 jsb-adapter 工程的 engine/jsb-reflection.js 文件中。
1 | // JS to Native bridges |
1 | // cocos/scripting/js-bindings/manual/JavaScriptJavaBridge.cpp |
register_javascript_java_bridge 方法在游戏引擎初始化时注册:
1 | bool jsb_register_all_modules() |
原理就是js通过js引擎调用c++方法,然后通过jni调用java方法。
Java 调用 JavaScript 原理分析
先来看一下 Cocos2dxJavascriptJavaBridge.evalString
方法:
1 | public class Cocos2dxJavascriptJavaBridge { |
1 | // cocos/scripting/js-bindings/manual/JavaScriptJavaBridge.cpp |