真的不想再更了,但項目進行還是遇到了些麻煩事。記錄下來,互相學習。
爲了製作排行榜,需要用到微信開放域,說白了就是微信爲了保護數據弄出來的玩意兒,有點麻煩。微信開放數據域參考:https://ldc2.layabox.com/doc/?nav=zh-ts-5-0-7
1,父子域之間的通信
作用:在子域中獲取到微信的關係鏈數據
大致流程:
&1,需要兩個工程
&2,在game.json中添加代碼:
{
"deviceOrientation": "portrait",
"openDataContext": "src/myOpenDataContext"
}
&3,開放數據域不能向主域發送消息,主域可以調用開放數據域實例的postmassage()方法向開放數據域發送消息
// game.js
let openDataContext = wx.getOpenDataContext()
openDataContext.postMessage({
text: 'hello',
year: (new Date()).getFullYear()
})
在開放數據域中通過 wx.onMessage() 方法可以監聽從主域發來的消息。
// src/myOpenDataContext/index.js
wx.onMessage(data => {
console.log(data)
/* {
text: 'hello',
year: 2018
} */
})
&4,
主域 : Laya.MiniAdpter.init(true,false);
子域 :Laya.MiniAdpter.init(true,true);
Demo操作步驟:
&1,創建兩個工程,一個爲主域(主項目),另一個爲子域(排行榜)
&2,父域工程代碼及修改:
[{
"index": 1,
"avatarIP": "test/4.png",
"UserName": "側故事",
"RankValue": 100
}, {
"index": 1,
"avatarIP": "test/4.png",
"UserName": "側故事",
"RankValue": 100
}, {
"index": 1,
"avatarIP": "test/4.png",
"UserName": "側故事",
"RankValue": 100
}, {
"index": 1,
"avatarIP": "test/4.png",
"UserName": "側故事",
"RankValue": 100
}]
reward.json
&3,子域修改:
&4,其他的修改
修改game.json的配置等
最終實現效果:
2019.7.30號更新:
這玩意兒太坑了,今天中午折騰了一中午,在首行的地方不應該加Laya.MiniAdpter.init(true,false);,否則微信中會報找不到的錯。
2,獲得開放域數據
發送存儲
參考:https://developers.weixin.qq.com/minigame/dev/api/open-api/data/KVData.html