cocos creator jsb 与java层 oc 层互调

原创 2018年04月16日 15:05:26

jsb 无参调用java 层 oc 层

if(cc.sys.os == cc.sys.OS_ANDROID){

    jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "requestLocation","()V");
}else if (cc.sys.os == cc.sys.OS_IOS){
    jsb.reflection.callStaticMethod("AppController", "requestLocation");
}

jsb 调用java 层 oc 层返回值

if(cc.sys.os == cc.sys.OS_ANDROID){
   var nPower = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "getBatteryPercent","()Ljava/lang/String;");
   nPower = parseInt(nPower)/100;
   return nPower;
}else if ( cc.sys.os == cc.sys.OS_IOS ){
    var nPower = jsb.reflection.callStaticMethod("AppController", "getBatteryPercent");
    return nPower;
}

jsb 有参数调用java 层与oc 层

if(cc.sys.os == cc.sys.OS_ANDROID){
    jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "CopyStrtoClipboard", "(Ljava/lang/String;)V",szString);
}else if (cc.sys.os == cc.sys.OS_IOS){
   jsb.reflection.callStaticMethod("AppController", "copyClipboard:",szString);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////

java层调用cocos creator 层

Cocos2dxJavascriptJavaBridge.evalString("cc.vv.anysdkMgr.onJavatoCreator("+ msg + ")"); 函数名加传入的参数

oc 层调用 cocos creator 层

using namespace cocos2d;

using namespace se; //头文件

    std::string  jsCallStr = cocos2d::StringUtils::format("cc.vv.anysdkMgr.onJavatoCreator(\'%s\');", msg.c_str());

    se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str());


这里根据需求 msg 内容是一个"{aa:bb,}"数据格式的字符串对象,所以用了''进行了隔断区分

se::ScriptEngine::getInstance()->evalString("cc.vv.anysdkMgr.onJavatoCreator();"); 这样写单纯的也可以进行调用.

  
  
  




接口ScriptEngine

javax.script 接口 ScriptEngine 所有已知实现类: AbstractScriptEngine public interface ScriptEngine ...
  • xzyxuanyuan
  • xzyxuanyuan
  • 2012年10月11日 20:15
  • 3170

java中调JavaScript的eval() 函数实现字符串的运算(ScriptEngineManger)

java中执行javascript实现计算器的简单运算,代码如下: ScriptEngineManger sem = new ScriptEngineManger(); /*script引擎管理*/...
  • msyqmsyq
  • msyqmsyq
  • 2016年10月28日 12:17
  • 2617

3A算法

AW自动白平衡 白平衡的本质是使白色物体在任何光源下都显示白色 一般的算法通过调节白平衡增益, 使拍摄画面的颜色接近物体真实的颜色, 增益调节的根据是环境光源的色温.一般AWB算法的步骤: 估算环...
  • u011403803
  • u011403803
  • 2017年05月30日 22:33
  • 3369

Camera 的3A

就是AE AF AWB Auto Expose Auto Focus Auto White Balance
  • kickxxx
  • kickxxx
  • 2013年12月05日 19:27
  • 6436

Cocos2d 与OC的互相调用

JS里面调用OCvar ret = jsb.reflection.callStaticMethod("NativeOcClass", "callNativeUIWithTitle:andConten...
  • joker_wlk
  • joker_wlk
  • 2016年11月17日 18:01
  • 855

Cocos Creator 实现js调用object-c

1、创建creator的hello world项目。 2、在HelloWorld.js的onLoad: function ()里添加以下代码:this.node.on(cc.Node.EventTy...
  • hyczwl
  • hyczwl
  • 2016年05月20日 15:07
  • 2294

Android4.4选择照片问题

上传图片到服务器的时候,通常要先调出选择框选择图片,这里要说的就是这个选择图片的动作。 一般来说,选择照片这个动作的过程的代码大致是这样的: Intent intent = new Inten...
  • zzf112
  • zzf112
  • 2014年07月18日 13:41
  • 7359

eval()函数(javascript)

eval()函数JavaScript有许多小窍门来使编程更加容易。其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。举个小例子:var the_un...
  • yangxiaobing2007
  • yangxiaobing2007
  • 2008年03月26日 16:43
  • 116

Cocos Creator跨平台的调用方法

原文介绍的是cocos js,因为creator是亲生的,血统一样,而且官方文档这里根本没有介绍,所以参考这个就行了 首先从我们ProjectM的开发背景开始,项目采用的Cocos2d-JS 引擎是为...
  • potato47
  • potato47
  • 2017年04月02日 21:43
  • 8736

CocosCreator 怎么添加JSB绑定的C++类到场景中

文章转载自: 用JSB绑定后在cocos-js中使用完全没问题,creator中也可以创建对象,问题是怎么将这样的node添加进场景,creator 的js部分的cc.Sprite等原来的继...
  • u013654125
  • u013654125
  • 2017年12月11日 17:39
  • 453
收藏助手
不良信息举报
您举报文章:cocos creator jsb 与java层 oc 层互调
举报原因:
原因补充:

(最多只允许输入30个字)