背景
Cocos creater V2.4.8开发的游戏需要集成华为游戏多媒体安卓原生SDK,输出APK游戏。
接入步骤
Cocos游戏侧:
Cocos侧作为SDK的调用者和SDK消息的接收者。需要分别定义JS调用安卓SDK以及接收SDK返回的消息。
JS调用Java方法
通过反射机制直接在 JavaScript 中调用 Java 的静态方法,其中第一个参数是 Java 的类名且包含固定前缀路径org/cocos2dx/javascript/,第二个参数是方法名,第三个参数是方法签名,决定该消息是否有返回值及其返回类型(很重要),第四个参数是想传递给Java测的参数。 具体代码如下: jsb.reflection.callStaticMethod("org/cocos2dx/javascript/" + data.objectName, data.functionName, "(Ljava/lang/String;)Z", ...data.restOfName);
JS侧接收安卓回调消息
这个依赖于安卓中Cocos2dxJavascriptJavaBridge这个类的 evalString方法,可以执行JS字符串代码。如下: Cocos2dxJavascriptJavaBridge.evalString("cc.javaCallback("+message+"")"); 需要注意里面字符串开头处的cc.javaCallback,这是双方约定好回调信息触发的是JS中的cc.javaCallback方法。那么我们需要在JS中定义全局方法cc.javaCallback来接收参数,如下: cc.javaCallback = function (event, result) { console.log("cc.javaCa