要做這個(gè)好友排行榜.必然要有好友的戰(zhàn)績(jī)比分,然后再做排序,最后將數(shù)據(jù)呈現(xiàn)在UI上 , 可以分為下面幾個(gè)步驟:
保存每個(gè)用戶(hù)的分?jǐn)?shù)保存每個(gè)用戶(hù)的分?jǐn)?shù),需要調(diào)用微信的云存儲(chǔ)API,將用戶(hù)的分?jǐn)?shù)持久化的存起來(lái) . // 保存用戶(hù)數(shù)據(jù),注意限制單條數(shù)據(jù)容量不得超過(guò)1024字節(jié), // 單個(gè)用戶(hù)數(shù)據(jù)總條數(shù)不得超過(guò)128條 wx.setUserCloudStroage(Object)復(fù)制代碼
//存儲(chǔ)最高分 var score = 100; var kvScore = {"key":"score","value":score}; wx.setUserCloudStroage({"KVDataList":[kvScore]},"success":function(){ // });復(fù)制代碼 獲取好友列表,并獲取好友的分?jǐn)?shù)? 游戲中將玩家的分?jǐn)?shù)保存起來(lái)以后,需要調(diào)用微信的云存儲(chǔ)API wx.getFirendCloudStorage, 獲取玩家的微信好友數(shù)據(jù),這樣就拿到了每個(gè)好友的最高分. 值得一提的是,微信的這個(gè)接口在內(nèi)部隱蔽的使用其微信的社交關(guān)系鏈 . 返回列表中的包含的 調(diào)用過(guò)wx.setUserCloudStroage 這個(gè)接口的用戶(hù).
渲染排行榜對(duì)分?jǐn)?shù)進(jìn)行排序 , 得到一個(gè)排行榜 let sharedCanvas = wx.getSharedCanvas() function drawRankList (data) { data.forEach((item, index) => { // ... }) } wx.getFriendCloudStorage({ success: res => { let data = res.data drawRankList(data) } })復(fù)制代碼 注意這個(gè) sharedCanvas , 這是獨(dú)有的畫(huà)布 ,與小游戲中的畫(huà)布不是同一個(gè)東東.
使用sharedCanvas來(lái)自定義顯示玩家的用戶(hù)排行榜 重要說(shuō)明
? 上述所涉及的微信接口 , 都只能在微信小游戲的 子域 使用 , 微信官網(wǎng)也稱(chēng)之為開(kāi)放數(shù)據(jù)域 , 其實(shí)應(yīng)該稱(chēng)之為 封閉數(shù)據(jù)域 . |
工作日 8:30-12:00 14:30-18:00
周六及部分節(jié)假日提供值班服務(wù)