【求进】有没有兴趣一起弄个 CCCNative 开源库,就像 h5 混编 App 一样方便调用各种原生能力?

前言:

使用Cocos开发 Android、iOS项目,调用Native各种能力都需要去写平台代码这么麻烦
比如调用个读取剪切板、调用个系统分享、打开个外部URL…等等 都需要去写Native代码,然后使用JSB调用,Creator并没有直接提供好的JS库可以直接调用

听说AnySDK可以方便提供Native能力,然后看了下停止维护了,并且提供的是渠道SDK,并不是各种Native能力

之前写过5+SDK和UniApp那套,做H5套壳App调用各种原生能力着实方便,直接JS调用即可
并且Uni的插件那套也能很方便的集成各种Native SDK直接在JS里调用进行使用

如果Cocos也能有这么方便的调用Native的库就好了
如果能做成Cocos Creator编辑器插件,无需打开Android、iOS工程,直接集成就更棒了


大概设想:

为了方便扩展这个Native库,一切Native能力都以插件形式提供,后面都可以方便扩展

这个开源库

  • JS端提供个类似cc的对象,creator代码直接调用即可
  • Native端则Android为1个Jar文件,iOS为1个framewor文件
  • 原生工程,Android在Appliction类的生命周期方法,Activity的生命周期方法里,分别调用 Native代理生命周期方法
  • ios类似,在AppDelegate类的生命周期方法,UIViewController的生命周期方法里,分别调用 Natvie代理生命周期方法
  • Natvie抽象出的2个类,如Android,一个ProxyAppliction,一个ProxyActivity(子类可以获取到activity实例)
  • 插件开发是就继承这2个类,然后在ProxyActivity写对JS提供的接口
  • Natvie代理生命周期方法,会调用所有插件的生命周期方法,也会代理JS端调用ProxyActivity写对JS提供的接口
  • 然后再提供 1个arr文件,1个framewor文件,叫做BaseModule,为基础Native库,提供文中一开始提到的读取剪切板、调用个系统分享…等等普通基础Native能力
  • 要扩展Native能力,直接写新增插件放到指定目录即可
  • 插件还可使用配置文件,配置插件要引用的库、plist配置、meta配置等等

这样的话调用,只需要cocos creator扔个JS,原生工程集成下(jar、arr)、framewor 再各个生命周期里调用下,就可以任意使用原生能力

不过这些活应该是可以自动化的,应该再做个Cocos Creator编辑器插件,直接勾选上使用CCCNative,就全自动完成,连原生工程都不用打开,然后BaseModule插件外的插件再做个插件市场,编辑器里点击安装直接就扩展了新的原生能力,比如微信登录、人脸识别什么的。体验就是插件里点点点,然后项目里直接JS就能调用了

如果Native插件市场里有了很多优质插件,只是在Cocos Creator里用有点太可惜了。可以扩展Native端调用层,扩展到Laya、Egret、Untiy、UE4 甚至Webview


技术架构图设想长这样

个人精力有限,想问问有没有小伙伴想一起弄的?

4赞

弄个开源工程,写好详细说明文档发到论坛让有示例的开发者一起贡献吧

支持,不过这个若得到官方支持不是更好?

H5套壳App,有cordova 现成的解决方案
要在creator里用,其实原生层你把 cordova 代码拿来改改就行了,剩下就是API的封装。

这个cordova,看起来很强大啊。

是的,对于BaseModule,Cordova5+SDK 都可以是搬运的对象。还值得一提的是, Uni的插件市场看起来挺繁荣的,里面已经有很多接入了各种SDK的原生插件,地图、极光、广告SDK啥的这些符合国情插件,如果能兼容那瞬间就大大的丰富了各项原生能力

牛皮~~~

搞个工程出来,每个人往上面加功能。一起来维护

现在有github了吗