开放域我用的不多,最有用的就是好友排行榜。为了防止数据外泄,微信采用开放域的方式来展示给你信息。
开放域有这样一些特点:
- 只能项目向开放域单向发送信息
- 开放域会提供一个绘制好的图片数据给到项目展示
- 开放域可以获得用户的好友数值信息,从而可以列出好友排行榜
- 开放数据域可以获得好友的头像
触碰按钮
提到好友排行榜,就要提到翻页按钮。由于开放数据域并不适合做成滚动刷新,所以设置两个翻页按钮是必须的。单触摸操作通过wx.onTouchEnd给的坐标点很难落到按钮上,它根据分辨率,屏幕百分比都会有相对的变化(其实是egret等游戏引擎会进行自适应变化)
解决方案:
- 将触碰按钮图片放到开放域上
- 项目中放两个按钮,分别发送翻页事件
- 开放域提供事件接受和处理
也就是将按钮的显示放到了开放域,功能放到了项目引擎中。
另外需要注意一点的是,开放域的绘图坐标系是可以被挪动的,方法是将偏移量发给开放域去做贴图偏移处理。
下面贴一个开放域绘制大小的更改代码
let openDataContext:any = wx.getOpenDataContext();
let sharedCanvas:any = openDataContext.canvas;
sharedCanvas.width = 530;
sharedCanvas.height = 792;