開放數據域 是一個封閉、獨立的 JavaScript 做用域。開放數據域主要做用就是獲取用戶的關係鏈數據,而且展現關係鏈數據
具體使用方法在官方文檔已經很是詳細了-》開放數據域本文只是作一個簡單整理
具體的展現關係鏈數據,如何繪製排行榜,請查看另外一篇文章html
一、新建開放數據域的代碼目錄,以myOpenDataContext爲例,在目錄下新建index.js做爲開放數據的入口文件
二、在game.json中添加配置項 openDataContextjson
{ "deviceOrientation": "portrait", "openDataContext": "src/myOpenDataContext" }
一、主域和開放數據域中的代碼不能相互 require
二、wx.getUserCloudStorage、wx.getFriendCloudStorage() 和 wx.getGroupCloudStorage() 只能在 開放數據域 中調用。
三、wx.setUserCloudStorage() 和 wx.removeUserCloudStorage() 能夠同時在 主域 和開放數據域中調用。
四、開放數據中不能修改sharedCanvas的寬高,若有須要,請在上屏canvas修改sharedCanvas的寬高
五、sharedCanvas只能被上屏canvas渲染
六、開放數據域不能向主域發送消息
七、sharedCanvas 不能調用 toDataURL 和 getContext。
八、開放數據域的全部 canvas 只支持 2d 渲染模式
九、開放數據域的 Image 只能使用本地或微信 CDN 的圖片,不能使用開發者本身服務器上的圖片canvas
一、主域不能調用wx.getUserCloudStorage、wx.getFriendCloudStorage() 和 wx.getGroupCloudStorage() ,也就是說主域不能直接獲取用戶關係鏈數據,必須經過開放數據域獲取,再渲染到sharedCanvas上segmentfault
開放數據域不能向主域發送消息,主域能夠調用開放數據域實例的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 } */ })
具體關於關係鏈數據的操做以及排行榜的繪製,請前往另外一篇文章微信小遊戲-關係鏈數據的使用post