# 一、能力说明

  1. 前置条件:接入视频号一键开播SDK最新版
  2. 业务要求:在游戏的活动中心挂载此组件img
  3. 调用描述
    • 用户进入活动中心时,建议预加载任务组件
    • 用户点击访问任务活动时
      • 传入希望组件挂载的坐标和宽高信息,并显示任务组件
      • 传入用户当前区服信息,用户完成任务后发奖
    • 用户离开任务活动,隐藏任务组件(不要关闭销毁)
    • 用户离开活动中心时,建议关闭销毁任务组件

# 二、接口调用

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)

注意:

  1. 调用活动接口前,需先执行checkSupport接口和init接口以后。
  2. load和show的坐标系为IOS与安卓端坐标系,左上角为坐标原点,x轴向右,y轴向下
  3. 增加监听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);
       }
    }

# 三、推荐调用顺序

img9.png