OC和Cocos-js的互相调用

时间:2023-01-04 19:39:21

OC调用cocos-js

#import "ScriptingCore.h"
#import "cocos2d.h"
#include "scripting/js-bindings/manual/ScriptingCore.h"
#include "scripting/js-bindings/manual/jsb_conversions.hpp"
#include "scripting/js-bindings/jswrapper/SeApi.h"
#define JSCallBackHasVoice @"cc.director.getScene().getChildByName('Canvas').getComponent('OCRecorder').hasVoice"
//hasVoice是cocos-js的方法
+ (void)JsCallBack:(NSString *)funcNameStr WithIndex:(NSInteger)index{
    std::string funcName = [funcNameStr UTF8String];
    NSString *numberStr  = [NSString stringWithFormat:@"%ld",index];
    std::string coins = [numberStr UTF8String];
    std::string jsCallStr = cocos2d::StringUtils::format("%s(\"%s\");",funcName.c_str(), coins.c_str());
    se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str());
}