要做這個好友排行榜.必然要有好友的戰績比分,然后再做排序,最后將數據呈現在UI上 , 可以分為下面幾個步驟:
保存每個用戶的分數保存每個用戶的分數,需要調用微信的云存儲API,將用戶的分數持久化的存起來 . // 保存用戶數據,注意限制單條數據容量不得超過1024字節, // 單個用戶數據總條數不得超過128條 wx.setUserCloudStroage(Object)復制代碼
//存儲最高分 var score = 100; var kvScore = {"key":"score","value":score}; wx.setUserCloudStroage({"KVDataList":[kvScore]},"success":function(){ // });復制代碼 獲取好友列表,并獲取好友的分數? 游戲中將玩家的分數保存起來以后,需要調用微信的云存儲API wx.getFirendCloudStorage, 獲取玩家的微信好友數據,這樣就拿到了每個好友的最高分. 值得一提的是,微信的這個接口在內部隱蔽的使用其微信的社交關系鏈 . 返回列表中的包含的 調用過wx.setUserCloudStroage 這個接口的用戶.
渲染排行榜對分數進行排序 , 得到一個排行榜 let sharedCanvas = wx.getSharedCanvas() function drawRankList (data) { data.forEach((item, index) => { // ... }) } wx.getFriendCloudStorage({ success: res => { let data = res.data drawRankList(data) } })復制代碼 注意這個 sharedCanvas , 這是獨有的畫布 ,與小游戲中的畫布不是同一個東東.
使用sharedCanvas來自定義顯示玩家的用戶排行榜 重要說明
? 上述所涉及的微信接口 , 都只能在微信小游戲的 子域 使用 , 微信官網也稱之為開放數據域 , 其實應該稱之為 封閉數據域 . |