U8SDK——Egret(白鹭引擎)中集成U8SDK

作者: 分类: U8SDK 发布时间: 2019-05-30 16:31 6U8SDK——Egret(白鹭引擎)中集成U8SDK已关闭评论

随着H5游戏和微信小游戏越来越火, 使用H5游戏引擎来开发的游戏会越来越多,H5游戏不仅仅可以作为纯H5来运行,也可以打包成原生app包或者微端来运行。

如果你希望将H5游戏打包成微端或者原生app包,分发到国内各大渠道平台, 那么你可能就会使用U8SDK这样的聚合SDK产品,来快速地完成渠道SDK的接入和分发。

这篇博客,我们就来看下如何在Egret(白鹭引擎)中接入U8SDK Android平台api接口。

前面我们已经写了一篇博客,讲解了H5引擎Layabox开发的游戏如何集成U8SDK,感兴趣的同学可以参考一下:【Layabox集成U8SDK】

Egret提供了Egret Native组件来帮助我们和原生API进行通信。 Egret中和Android平台api相互调用 也就是js和android平台之间的相互调用。我们只需要按照引擎为我们提供好的调用api来进行U8SDK API的调用和封装即可。

我们先看从js或者从Egret程序中,我们如何调用Android层(java)中的一个方法。 比如我需要在js中调用Android层一个登录方法, 比如方法名叫login。

第一步, 我们需要在Android层代码中,调用Egret的api来注册这个方法:

可以看到, 我们调用nativeAndroid的setExternalInterface接口,注册了一个u8Login的方法, 然后在回调中, 才真正调用了我们想要调用的login函数。

注意, 后面js中调用的时候,需要指定的方法名称是u8Login,而不是login。

紧接着,我们可以在js代码中这样调用我们的登录方法了:

上面可以看到, 在js代码中,我们只需要调用egret.ExternalInterface.call接口,然后传入我们在android层注册好的方法名称,就可以完成原生层api的调用了。

然后我们再来看, 如何从Android层代码中,调用到js层或者Egret程序的方法:

上面可以看到, 和上面的思路一样。 在js代码中, 我们通过调用egret.ExternalInterface.addCallback来注册需要被原生层调用的方法。 上面我们注册了一个onU8LoginSuccess的js方法。

然后我们从Android层来调用这个注册了的js方法:

上面可以看到,在java代码中,我们只需要调用nativeAndroid.callExternalInterface接口,然后传入我们在js层注册好的方法名称,就可以调用到js层的方法了。

Egret Native已经为我们封装了一套极其简单的API,来完成原生层和js层的相互调用。 我们接下来就按照上面的知识, 来封装一套js中的U8SDK的相关API。 下面直接贴代码了, 相关说明见代码注释。

Egret中js层U8SDK.ts文件中封装了U8SDK相关组件:

调用的话, 我们弄几个按钮, 然后在按钮中,调用对应的api:

接下来,我们将工程发布成微端或者原生app工程, 会生成一个AndroidStudio Android原生工程。 我们打开这个工程,写Android层对应的代码:

我们封装了一个U8SDKForEgret的单例对象,里面做相关方法的注册,以及U8SDK的调用:

然后在生成的MainActivity中, 进行相关api的调用, 以及U8SDK生命周期函数的调用:

好了,到这里Egret中集成U8SDK就完成了, 接下来你可以将生成的apk母包,上传到U8SDK打包后台, 随便打一个渠道apk试试看效果吧。

本文出自 U8SDK技术博客,转载时请注明出处及相应链接。

本文永久链接: http://www.uustory.com/?p=2273

评论功能已经关闭,请加入U8SDK技术群进行讨论和咨询:207609068
Ɣ回顶部
U8SDK技术群 x
技术同学请加入
点击加入