cocos creator js、ts如何调用java中的方法
如果想要在js或ts中调用andorid方法,可以使用反射,看下面的方法:
jsb.reflection.callStaticMethod(className, methodName, methodSignature, parameters...)
然后我举个栗子:
public doVibrate(isShort: boolean = true) {
jsb.reflection.callStaticMethod("com/xxxx/Admopub/AdmopubHelper", "doVibrate", "(Z)V", isShort)
}
下面结合说明一下:
className
,是java中的类名,要带上路径,是相对路径,栗子中的是"com/xxxx/Admopub/AdmopubHelper"
methodName
,是java类中的静态方法,"doVibrate"
methodSignature
,是方法签名,看下面的表,栗子中是"(Z)V"
parameters
,是你需要传入的参数,需要和前面的methodSignature
配合使用,栗子中传入的是isShort
说完了使用,再说下签名的使用:
- 我在java里面写的
public static void doShake(boolean isShort)
,是一个类型boolean的参数,返回是void,所以调用就使用(Z)V
- 如果有一个方法是
public static int func()
,那调用如下,其他就不用解释了:jsb.reflection.callStaticMethod("com/xxxx/Admopub/AdmopubHelper", "func", "()I");
类型 | 签名 |
---|---|
int | I |
float | F |
boolean | Z |
String | Ljava/lang/String; |