编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Layaair微信开放数据域(微信开发者工具云开发数据库)

wxchong 2024-08-22 03:43:29 开源技术 14 ℃ 0 评论

Layaair微信开放数据域

1 新建子域项目

点击文件->新建项目->开放域项目

2 主域向子域发送资源

Laya.MiniAdpter.sendAtlasToOpenDataContext("res/atlas/local.atlas");

Laya.MiniAdpter.sendJsonDataToDataContext("prefab/myIcon.json");

3 子域处理消息,接收资源

wx.onMessage(function(data){

console.log("wx onmessage ",data)

if(data.url == "prefab/myIcon.json"||data.url =="res/atlas/local.atlas"){

mark++

if (mark==2){

Laya.loader.load(["prefab/myIcon.json","res/atlas/local.atlas"],Laya.Handler.create(this,this.onComplete));

}

}

}.bind(this));

pbjs -t static-module -w commonjs -o bundlel.js UccBinServer2.proto

4 主域添加微信控件

在主域要显示微信开放数据的地方,添加控件WXOpenDataViewer

界面初始化的时候,向子域发送消息,控制子域显示信息

this.touchSceneView.imgWxData.postMsg({ type: "GetUserInfo" })

5 子域去微信获取数据

子域收到消息,根据收到消息类型,去微信获取不同的数据

/**

* 接收信息

* @param message 收到的主域传过来的信息

*/

private recevieData(message):void{

console.log("recevieData",message)

var _$this =this;

var type:String = message.type;

switch(type)

{

case "GetUserInfo":{

this.getImgData()

break

}

case "GetRankInfo":{

GameDataManager.OpenId = message.openId

GameDataManager.RankIndex = message.RankType

if (GameDataManager.RankIndex==1) {

GameDataManager.GamePScore = message.selfscore

}else {

GameDataManager.GameSScore = message.selfscore

}

this.getRankData(message.selfscore)

break

}

case "GetWorldInfo":{

GameDataManager.RankIndex = message.RankType

GameDataManager.MyRank = message.rank

if (GameDataManager.RankIndex==1) {

GameDataManager.GamePScore = message.selfscore

}else {

GameDataManager.GameSScore = message.selfscore

}

this.getWorldRankData(message.data)

break

}

default:

break;

}

}

6 子域发布

主域的bin目录新建open文件夹

子域点击发布按钮,将编译的文件拷贝到主域的bin/open文件夹下

7 主域发布

主域编译之后,在主域的game.json文件中添加"openDataContext": "./open"配置

注意:

Laya的微信控件一个场景只能一个,因为控件初始化的时候回向子域发送一些初始化信息,例如控件的大小等,这部分由laya封装好了。如果同一个场景有多个微信控件,会导致显示内容显示错误。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表