微信小游戏-开放数据域的配置

概念

开放数据域 是一个封闭、独立的 JavaScript 做用域。开放数据域主要做用就是获取用户的关系链数据,而且展现关系链数据
具体使用方法在官方文档已经很是详细了-》开放数据域本文只是作一个简单整理
具体的展现关系链数据,如何绘制排行榜,请查看另外一篇文章html

配置方法

一、新建开放数据域的代码目录,以myOpenDataContext为例,在目录下新建index.js做为开放数据的入口文件
二、在game.json中添加配置项 openDataContextjson

{
  "deviceOrientation": "portrait",
  "openDataContext": "src/myOpenDataContext"
}

clipboard.png

开放数据域限制

一、主域和开放数据域中的代码不能相互 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

相关文章
相关标签/搜索