美文网首页Cocos Creator小游戏
Cocos creator ios开发—Javascript和O

Cocos creator ios开发—Javascript和O

作者: 洒一地阳光_217d | 来源:发表于2019-03-21 23:52 被阅读2次

    本文以oc层以AppController.mm为例

    一、js层向oc层发送消息:

    1、传递1个参数:
    js层发送

    // "AppController"是类名
    // "test01"是方法名
    // "我是js传过来的参数"是传过去的参数
    jsb.reflection.callStaticMethod("AppController", "test01:", "我是js传过来的参数");
    

    oc层接收

    // AppController类里
    + (void)test01:(NSString*) param {
          cocos2d::log("收到js层传过来的参数");
          NSLog(@"收到的参数是:%s", param); // "收到的参数是:我是js传过来的参数"
    }
    

    2、传递2个参数:
    js层发送

    // 传递多个参数时,除了第一个参数,后面的参数都要写参数名
    jsb.reflection.callStaticMethod("AppController", "test01:param2:", "我是js传过来的参数1",  "我是js传过来的参数2");
    

    oc层接收

    // AppController类里
    + (void)test01:(NSString*) param param2:(NSString*)param2{
          cocos2d::log("收到js层传过来的参数");
          NSLog(@"收到的参数1是:%s", param); // "收到的参数是:我是js传过来的参数1"
          NSLog(@"收到的参数2是:%s", param2); // "收到的参数是:我是js传过来的参数2"
    
    一、oc层向js层发送消息:

    oc层发送

    // 向cocos发送消息。
    - (void)sendMsgToJs {
        NSString *msg = [NSString stringWithFormat:
                         @"{\"resultCode\":\"%@\",\"cmd\":\"success\"}",
                         [NSString stringWithFormat:@"%d", 1],
    
        if(msg == nil){
            msg = @"";
        }
        NSLog(@"向cocos发送 %@",msg);
        
        //指针: 前面有*的用->调用,和没有*的用.调用是等价的
        std::string *nsMsg = new std::string([msg UTF8String]);
        std::string jsCallStr = "deviceAPI.onOCMsg(\'"; // deviceAPI是全局变量,里面有个onOCMsg方法
        jsCallStr.append(*nsMsg);
        jsCallStr.append("\');");
        se::Value *ret = new se::Value();
        se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str() , -1 , ret);
        NSLog(@"%@",@"向cocos发送结果ok");
    }
    

    js层接收

    //收到来自objectiveC的消息。
    onOCMsg: function (msg) {
        console.log("收到来自objectiveC的消息");
    
        let msgObj = JSON.parse(msg);
        console.log(msgObj.resultCode); // 1
        console.log(msgObj.cmd); // success
    },
    

    相关文章

      网友评论

        本文标题:Cocos creator ios开发—Javascript和O

        本文链接:https://www.haomeiwen.com/subject/goohvqtx.html