绑定JSB后如何异步回调

版本:creator 2.2.1
语言:JavaScript
平台:使用iOS平台测试

问题描述:
使用JSB 2.0接口标准进行了手动JSB绑定,并在绑定的cpp类中实现了回调方法。现项目需要获取原生相册数据,思路是creator里面使用JS代码调起原生访问相册功能并同时设定好回调函数逻辑;JSB机制调用原生相册,相册在<UIImagePickerControllerDelegate, UINavigationControllerDelegate>监听中监测用户行为,用户选择相片后将相片数据传给JSB的回调并执行JS内的逻辑,现不知道获取到照片数据到调用对应回调这部分要如何处理。

主要代码逻辑结构如下,望给出提示或者建议,谢谢。

JS代码

testGalleryJSB: function () {
    var galleryObj = new ns.GalleryJSBind();
    ns.GalleryJSBind.static_func();
    var delegateObj = {
        onCallback: function (counter) {
            this.statusLabel.string = '获取相片完成,照片数据待处理';
        }
    };
    galleryObj.setCallback(delegateObj.onCallback, delegateObj);
    galleryObj.openGallery();
}

OC代码结构


如上图截图所示,JsbGalleryCtrl类原生调用系统相册并监听委托接口,目前想在委托内写异步回调TODO Callback处,但是不懂如何获取JSB对象。
截图漏圈画的类GalleryJSBind为JSB绑定的类。

@dumganhar @panda @kenshin @引擎开发团队 大神们麻烦帮忙看下。谢谢。

你可以参考下这个帖子 这个不需要啥js的回调 只需要知道 oc是怎么调js的 就行了 然后把数据从oc传到js就万事大吉了

如果你只是单纯的想获取相册,可以不用jsb············

使用se->evalString()调通知JS了,发现图片文件数据无法传回JS,请问下你是如何处理的呢?

好的,刚刚用这个方法实现了OC数据传回JS,只是暂时遇到图片数据过大传回失败,还没有思路解决。

你要传图片二进制数据么?

当你选取相册图片,裁切后,把保存的路径传给cc就行

你好,关于JSB的回调还是想问一下,我在OC里面如何去触发JSB里的回调呢?按理说应该能够获取到绑定的JSB然后去调用相关方法进行触发吧?

好的,这个我试一下。