JavaScript 调用 Java:
关键函数:
var result= jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...);
className:类名(路径),例如:org/cocos2dx/javascript/AppActivity。不用加后缀。
methodName:方法名,例如:Test
methodSignature:方法中的参数类型和返回类型,例如:(Ljava/lang/String;)V。传入参数类型为String 返回类型为void
参考表:
目前 Cocos Creator 中支持的 Java 类型签名有下面 4 种:
Java类型 | 签名 |
---|---|
int | I |
float | F |
boolean | Z |
String | Ljava / lang / String; |
parameters…:参数,例如:“测试”。有几个参数写几个
例子:
if (cc.sys.isNative) {
//是安卓平台
jsb.reflection.callStaticMethod(
"org/cocos2dx/javascript/AppActivity", //路径
"Test", //方法名
"(Ljava/lang/String;)V", //如果有两个(Ljava/lang/String;Ljava/lang/String;)V
"测试" //需要传入的参数
); //void没有返回值,不需要接收
}
官方参考:https://docs.cocos.com/creator/manual/zh/advanced-topics/java-reflection.html
Java代码,路径:工程文件夹\build\jsb-default\frameworks\runtime-src\proj.android-studio\src\org\cocos2dx\javascript\AppActivity.java
public class AppActivity extends