首先你要熟悉一下主域和子域(开放数据域)的概念
→传送门:https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/open-data.html
这两个东西的大致作用应该就是你不能把微信数据库拿到的数据放到你自己的数据库
实践操作:
第一步:主域部分
1.你需要在主域设置一个按钮 来绑定接下来的onclick事件
2.然后在按钮的上方设置一片纯色精灵的节点
用来显示你的子域 就像这样
3.然后随便创建一个空节点WXsocial 然后创建一个脚本wxsocial绑定到这个节点上
(为了在继续开发游戏的时候不会报错 直接把wxsocail的active设置成False就行 或者把节点的勾去掉)
内容如下
cc.Class({
extends: cc.Component,
properties: {
_controller: null,
display: cc.Sprite
},
init(controller) {
this._controller = controller;
cc.log('init!');
},
start() {
this._isShow = false;
this.tex = new cc.Texture2D();
},
onClick() {
this._isShow = !this._isShow;
// 发消息给子域
wx.postMessage({
message: this._isShow ? 'Show' : 'Hide'
})
},
_updaetSubDomainCanvas() {
if (!this.tex) {
return;
}
this.tex.initWithElement(sharedCanvas);
this.tex.handleLoadedTexture();
this.display.spriteFrame = new cc.SpriteFrame(this.tex);
},
update() {
this._updaetSubDomainCanvas();
}
});
4.绑定按钮事件onclick
5.然后把纯色节点拖到WXsocial的Display上面
6.然后主域部分可以构建打包了,记得写上子域的名字
第二步:子域部分 (后有源文件)
1.创建一个子域的项目
2.按你的需求制作排行榜页面
就像这样
3.创建一个脚本挂到canvas上 脚本内容如下
cc.Class({
extends: cc.Component,
properties: {
display: cc.Node,
},
start() {
wx.onMessage(data => {
switch (data.message) {
case 'Show':
this._show();
break;
case 'Hide':
this._hide();
break;
}
});
},
_show() {
let moveTo = cc.moveTo(0.5, 0, 0);
this.display.runAction(moveTo);
console.log('i show');
var kvDataList = new Array();
kvDataList.push({
key: "score",
value: "111"
});
wx.setUserCloudStorage({
KVDataList: kvDataList
})
wx.getFriendCloudStorage({
keyList: ['score'],
success: function (res) {
console.log(res);
//TODO:进行数据绑定更新
}
});
},
_hide() {
let moveTo = cc.moveTo(0.5, 0, 1000);
this.display.runAction(moveTo);
},
});
数据绑定就自己去写吧
4.打包发布 勾选打包成子域
给神兽铛的链接:https://pan.baidu.com/s/1CVFZ6FMXgwOVlQumgn5GgA
第三步:接入子域
参考http://docs.cocos.com/creator/manual/zh/publish/publish-wechatgame-sub-domain.html
就是把你打包的子域的文件夹放到主域的文件夹之下