美文网首页
Layaair微信开放数据域

Layaair微信开放数据域

作者: hexg1016 | 来源:发表于2019-07-25 14:45 被阅读0次

    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封装好了。如果同一个场景有多个微信控件,会导致显示内容显示错误。

    相关文章

      网友评论

          本文标题:Layaair微信开放数据域

          本文链接:https://www.haomeiwen.com/subject/vdjhrctx.html