# 一、能力说明
- 前置条件:接入视频号一键开播SDK最新版
- 业务要求:在游戏的活动中心挂载此组件
- 调用描述
- 用户进入活动中心时,建议预加载任务组件
- 用户点击访问任务活动时
- 传入希望组件挂载的坐标和宽高信息,并显示任务组件
- 传入用户当前区服信息,用户完成任务后发奖
- 用户离开任务活动,隐藏任务组件(不要关闭销毁)
- 用户离开活动中心时,建议关闭销毁任务组件
# 二、接口调用
C#层调用方法接口
/**
* 判断当前机型或者微信版本是否支持活动页面能力,可作为是否显示活动页面入口的依据(此方法同一键直播的CheckSupport,只需实现一次即可)
* @param callback "{\"type\":\"isSupport\", \"result\":0}"
* result 值如下,result==0时,可以显示直播入口和活动页面入口
* LIVE_SUPPORT = 0; 支持一键开播与活动页面
* LIVE_ONLY_SUPPORT_LIVE = 1; 仅支持直播不支持活动页面
* LIVE_ONLY_SUPPORT_ACTIVITY = 2; 仅支持活动页面不支持直播
* LIVE_UNSUPPORT_NOT_WHITELIST = -10; 不支持活动页面不支持直播
*/
public void CheckSupport(string userInfo, bool testEnv, int source);
/**
* 加载活动挂件(非预加载,注意传入为物理像素值)
* @param x,y,width,height,分别代表活动挂件左上坐标,宽度,高度
*/
public void LoadActivityWebView(int x, int y, int width, int height);
/**
* 预加载活动挂件
*/
public void PreloadActivityWebView();
/**
* 显示活动挂件(注意安卓传入为物理像素值,IOS为point值)
* @param x,y,width,height,分别代表活动挂件左上坐标,宽度,高度
*/
public void ShowActivityWebView(int x, int y, int width, int height);
/**
* 隐藏活动挂件
*/
public void HideActivityWebView();
/**
* 关闭活动挂件
*/
public void CloseActivityWebView();
/**
* 发送消息给直播挂件
* @param msg 消息字符串
* @param type 为0传给直播挂件,为1时传给主播任务挂件
*/
public void PostGameMessage(string msg ,int type)
注意:
- 调用活动接口前,需先执行checkSupport接口和init接口以后。
- load和show的坐标系为IOS与安卓端坐标系,左上角为坐标原点,x轴向右,y轴向下
- 增加监听OnExtraEvent
在收到finishLoadActivity时使用PostGameMessage方法向活动挂件发送区服信息,具体区服信息需与前端后台协定。
- appid
<
string>
: 微信区 appid - plattype
<
int>
: 系统类型,0:iOS 1:Android - partition
<
int>
: 游戏小区id - partition_name
<
string>
: 游戏小区名称(做base64编码) - roleid
<
string>
: 角色id - rolename
<
string>
: 角色名称(做base64编码) - is_qq
<
bool>
: 是否qq区 - access_token
<
string>
:为微信登录时的登录token - openid
<
string>
:游戏用户的openid
//content示例为json转字符串
content= "{
"appid": "wx921d2f69dc0ae71a", //string
"plattype": 1, // int
"partition": 1, // int
"partition_name": "MeWMuiDmuLjpmrzlsI/pmJ8=", //base64 encode
"roleid": "18577348464303713", // string
"rolename": "d3h5eHZsNDI=", //base64 encode
"access_token": "########", // string
"openid": "########", // string
"is_qq": false // bool
}"
调用方式:
// 扩展事件回调
mLiveEngine.OnExtraEvent += OnExtra;
//回调函数
void OnExtra(string param)
{
var dict = Json.Deserialize(param) as Dictionary<string,object>;
string type = dict["type"].ToString();
//主播任务组件需要
if (type.Equals("finishLoadActivity"))
{
//主播任务组件领奖区服信息发送给SDK(调用示例)
mUserGameInfo = "{\"appid\":\"" + appid +"\",\"plattype\":" + plattype + ",\"partition\":" + partition + ",\"partition_name\":\"" +partition_name +"\",\"roleid\":\"" + roleid + "\",\"rolename\":\"" + rolename +"\",\"is_qq\":" +"false" + ",\"access_token\":\""+ access_token +"\",\"openid\":\""+ openid +"\"}";
String s = "{\"type\":\"userGameInfo\",\"content\":" + mUserGameInfo + " }";
mLiveEngine.PostGameMessage(s, 1);
}
}