如何用jsb在native端下载文件?

cocos3.12, 现在想通过js在native上下载服务器文件。
c++提供了CCDownloader,Curl等可以使用。
但jsb并没有绑定这些方法,是什么考虑呢,要自己手动绑吗?

顶一下。。。

有WebSocket和SocketIO吧

目前只是下载资源用,不准备用socket,有http的下载方式吗?

好像没有。
@panda jsb有什么方便的文件下载方式?

顶一下。。。

自己用c++实现一个下载管理类绑定出来就好了,可以用assetsManangerEx里面用到的downloader类。

自己尝试绑了一下CCDownloader发现很多问题,没能搞定。引擎组的同学能帮忙绑定一下么?

现在的download类有点小问题 解压那一步在低端的机器可能容易引起崩溃 就算是我放在了另外一个线程去处理,还是会让机器卡顿 甚至死掉。。。。

Downloader 的绑定之后会提供,目前确实没有绑定

请问大概什么时间可以绑定好,有pull request我们照着merge。。
项目就卡在这块了。

simpeloader.zip (9.1 KB)localManagerEx.js.zip (1.2 KB)

这是我自己写的一个简单的加载类,目前勉强够用,还比较稳定。
其中CPP到JS端 开始写的是发自定义事件传到JS,但是—》CPP里面的自定义事件没法传到JSB里面去,源代码里根本就没有。 所以自己修改了自定义事件类,增加了一个额外的对象存储。不过后来升级上什么的懒得改代码,就改成了调用JS端的全局函数。
具体用法看上面ZIP文件里的JS。

这个下载下去放到CPP代码里,在AppDelegate那里引入一下就可以用了。

AppDelegate.CPP:#include “custom_jsb/simpeloader/jsb_cocos2dx_simpleLoader_auto.hpp”

然后注册:

sc->addRegisterCallback(register_SimpleLoader);

PS:没有多开线程下载,是按队列下载的

1赞

非常非常感谢,赶紧下来试试!:2:

@ourbrander
还缺少jsb_cocos2dx_simpleloader_auto_api.js
我用你的SimpleLoader自己生成了:
jsb_cocos2dx_simpleloader_auto.cpp
jsb_cocos2dx_simpleloader_auto.hpp
jsb_cocos2dx_simpleloader_auto_api.js
但cpp和hpp和你提供的不一样,而且运行后js端调不到native端,不知道问题出在哪。
可以把你的ini脚本发一下么?

jsb_cocos2dx_simpleloader_auto_api.js
这个玩意不需要的啊 只是给你提供语法提示的 没有任何其他用 我根本就没写那个JS文件

我的JSB都是手动自己写的 不是用脚本生成的 没必要生成

我给的都是完整代码 如果你还没拿到 那肯定是没有放对 API 看 jsb_cocos2dx_simpleloader_auto.cpp
里面写得很清楚 看不懂的话 稍微了解下JSB怎么回事吧

请问下,Downloader 会在哪个版本绑定啊?