一:在Laya中新建两个空项目
第一个当作主域
第二个当作开发域
二:
在第一个项目中写如下代码
1.在Laya.init前面加一句代码
Laya.MiniAdpter.init(true,false);
2.其他代码:
//得到开发域
let open = window['wx'].getOpenDataContext();
//使用开发域传输数据cmd:6
open.postMessage({cmd:6});
编译主域项目,然后正常发布成微信小游戏。
二、开发域设置:
1.在Laya.init前面加一句代码
Laya.MiniAdpter.init(true,true);//(第二个参数为true)
2.其他代码:
//可以写在构造函数中
window['wx'].onMessage(function (message) {
if (message['isLoad'] == "filedata" || message['isLoad'] == "filenative") {
gameMain.ReceiveRes(message);
}
console.log("我是子域"+message.cmd);
});
/**从主域获取资源数据 */
public ReceiveRes(message: any) {
if (message['isLoad'] == "filedata") {
Laya['MiniFileMgr'].ziyuFileData[message.url] = message.data;//文本数据
} else if (message['isLoad'] == "filenative") {
//子域接收主域传递的文件信息
if (message.isAdd)
Laya['MiniFileMgr'].filesListObj[message.url] = message.data;
else
delete Laya['MiniFileMgr'].filesListObj[message.url];
}
}
配置:将两个项目正常发布后,在主域的game.json中加一段代码
“openDataContext”: “open”,
然后将开发域发布后项目中的code.js,game.js,weapp-adaper.js这三个文件放到新建的open下
注意open文件夹跟lib同级。
最后修改game.js的名称为index.js
完成。将项目用微信开发者工具打开,可以得到控制台输出的我是子域6。实现了主域和开发域数据传输