cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

因为微信某些关键数据是不能通过直接通过主域获得,微信官方给出的理由是保护其关键数据,所以有了微信开放域这一概念,要注意几点:

          1,主域可以向子域发送消息,也就是调用子域,但是子域不能向主域发送消息。

           2,子域是和主域分开的cocos 引擎,所以尽量裁剪子域引擎,减少子域包的大小

           3,在微信加载游戏过程中,优先加载子域场景,后加载主域场景,所以如果子域最好多用预制体,动态加载的方式。减少游戏加载时间

先构建一个cocos creator 工程,在构建发布项目中如图:

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

主域中应构建发布如图:

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

在需要主域需要调用子域,显示子域的的场景或预制体中建一个空节点 如图:

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

主域需要调用子域的时候,代码如下 :

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

message是事件名称,data 是传的参数在子域中可以这样接受调用 代码如下:

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

如果在主域中调用api  wx.getUserInfo()来获的个人信息需要获得用户的同意,但是在子域中没有这个限制,在子域调用wx.getFriendCloudStorage ,这个api只能在微信开放域使用,一般使用代码如下:

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

子域使用上传数据api是 wx.setUserCloudStorage,使用代码如下:

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

因为是挂在场景里的,所以可以随意使用场景的节点,因为场景默认背景是黑色,所以需要在子域场景中设置摄像机如图:

cocos creator 微信数据开放域开发,排行榜开发,踩过的坑

这样主域显示子域正常显示,背景色为透明。

迄今比较全的微信开放域注意,使用,原理就ok了