分享链接https://forum.cocos.org/t/js-jsb-reflection-callstaticmethod/51877
1、被调用的方法必须要是公用静态方法
public static String getsum(int a,int b) {
return a+b;
}
2、callStaticMethod参数设置
jsb.reflection.callStaticMethod参数剖析:
参数一:"org/cocos2dx/javascript/AppActivity":java中的包名(.换成/)+class文件名,就当是路径好了
参数二:"requestLogin":方法名(必须public static)
参数三:“(Ljava/lang/String;)Ljava/lang/String;”:()内的是调用的java方法的参数类型,()外面的是返回值类型
【类型对应表:java类型int ---I java类型float----F java类型boolean(布尔)-----Z java类型String-----Ljava/lang/String;】
参数N:"this string from js":是java方法需要传入的参数(可以多个,与参数三中()内的数量和类型一一对应)
例如获取一个string返回
var errinfo = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity","getLocationErrorInfo","()Ljava/lang/String;");
注意:放回为字符串类型的数据,"()Ljava/lang/String;" 后面的分号也是需要的。
添加
1、参数说明
()内为输入参数,()外为返回类型
V表示无返回参数 为 void
例1 ()Ljava/lang/String; 代表 无传入参数,返回string
public static String funcReturnString(){
return String str;
}
例2 (Ljava/lang/String;Ljava/lang/String;III)V 代表 传入两个Sring,三个int类型后,无返回参数
public static void funcTest(finel Sring name,finel String sex,finel int age,finel int classnum,finel int score){
...
}