oc调用js最简教程

#pragma mark — native call js

  • (void)debugNotify {

    ScriptingCore::getInstance()->evalString(“cc.find(‘Canvas’).getComponent(‘debugBtn’).jsCallNativeDebug();”);

}

debugBtn是我在canvas下面添加的一个组建的名字,jsCallNativeDebug()是我写在关联这个debugBtn组建下面的js里面的方法,我点击iOS中的一个按钮,想调用js的这个方法,但是出现了这个问题,
:1:TypeError: cc.find(…).getComponent(…) is null

Evaluating cc.find(‘Canvas’).getComponent(‘debugBtn’).jsCallNativeDebug(); failed (evaluatedOK == JS_FALSE)
请大家帮帮忙,谢谢!

如果要是给js传第一个json数据呢,该怎么去写

转成字符串

cc.find(‘Canvas’)这句代码啥意思,没理解到

我也是这个问题,亲测有效,感谢

见此贴 http://forum.cocos.com/t/js/45948,史上最简

我也遇到这个问题,怎么解决Evaluating cc.find(‘Canvas’).getComponent(‘AnysdkMgr’).onText(); failed (evaluatedOK == JS_FALSE)


升级到了1.7.0 这种方法竟然不能用了. 
<img src="/uploads/default/original/3X/8/8/8833f9037f61f0298aeee4f2ddee7f2c62f5d2fb.png" width="690" height="47">
No member named 'evalString' in 'ScriptingCore'


求大神指点啊.

这个怎么解决的啊 我也是升级到1.7.0就没法用了?
No member named ‘evalString’ in ‘ScriptingCore’

#include "cocos/scripting/js-bindings/jswrapper/SeApi.h"
se::ScriptEngine::getInstance()->evalString(xxx)
1赞

这里的确有问题,@dumganhar 麻烦吧 executeString 改回 evalString

1赞

你们就是打死我,我也不会加这个API到ScriptingCore的。:grin::grin::grin::grin::grin:
1.7 JSB 本来就是全新的设计,全新的API。
ScriptingCore现在只是沦为一个适配器。所有的跟JS 引擎打交道的API都被移动到 se::ScriptEngine 类中的。开发者不应该再调用ScriptingCore的任何接口。
从有 1.7 的第一个beta版本,已经在文档中说明清楚了:

https://github.com/cocos-creator/creator-docs/blob/master/zh/advanced-topics/jsb/JSB2.0-learning.md#sescriptengine-与-scriptingcore-的区别为什么还要保留-scriptingcore

还有,ScriptingCore::executeString 是空实现 cocos2d::ScriptEngineProtocol 纯虚接口。
ScriptingCore::evalString 被移动到 se::ScriptEngine::evalString.

se::ScriptEngine::getInstance()->evalString( callback );

1赞

@dumganhar 2.0.7版本这个好像没用

官网的文档写的让人一知半解,学习起来真费劲啊····找了一晚上,找到这篇文章

真TM的坑

官方文档真的操蛋

简简单单一个文档写不明白,总是想当然,我在想你们自己写的文档自己会看吗?请问你们能按照文档调试出效果吗?不负责任

这个是史前巨坑,实在很无语。 文档连头文件都要引用哪些都没写出来,但可以搜索到~唉~。 ccc2.4.3 mac10.15.4 xcode12.0。。。经过锲而不舍的折腾测试通了
https://docs.cocos.com/creator/manual/zh/advanced-topics/oc-reflection.html?h=object