Cocos creator
export enum NativeToCCMessage
{
OnAfterInit = "OnAfterInit",
}
export class NativeHelper
{
public static HasJSB():boolean
{
return CC_JSB;
}
public static JSBCallStaticMethod(className: string, methodName: string, ...parameters: any):any
{
return CC_JSB && jsb.reflection.callStaticMethod.apply(null,arguments);
}
public static GetNativeSendMsg(msg:string,withParam?:boolean):string
{
let param:string = withParam ? ",\`#param\`" : "";
return "cc.director.emit(\'" + msg + "\'" + param + ");";
}
}
class OC_ADErrorParam
{
public errorCode:number;
}
let afterInit = (ocADError: string)=>
{
cc.director.off(NativeToCCMessage.OnAfterInit,afterInit,this);
let param:OC_ADErrorParam = JSON.parse(ocADError);
this._isInitFinish = true;
}
cc.director.on(NativeToCCMessage.OnAfterInit,afterInit,this);
let msg = NativeHelper.GetNativeSendMsg(NativeToCCMessage.OnAfterInit, true);
NativeHelper.JSBCallStaticMethod(SDK
,"Init"
,"(Ljava/lang/String;)V"
,msg);
Android Studio
class OC_ADErrorParam
{
public int errorCode;
}
public void Init(String callStr)
{
_initCallStr = callStr;
_saveAndLoadTool = new SaveAndLoadTool();
Log.d("BingoSDK","====================Init接收到参数:" + callStr);
OC_ADErrorParam oc = new OC_ADErrorParam();
oc.errorCode = 1654321;
String s = JSON.toJSON(oc).toString();
s = _initCallStr.replace("#param", s);
Cocos2dxJavascriptJavaBridge.evalString(s);
}