跳到主要内容
版本:v2

开发指南

本文介绍如何在游戏中加入 TapTap 动态。使用内嵌动态功能需依赖 TapTap 登录。

SDK 获取

请先下载 SDK,并添加相关依赖

"dependencies":{
// 登录
"com.taptap.tds.login":"https://github.com/TapTap/TapLogin-Unity.git#2.1.8",
"com.taptap.tds.common":"https://github.com/TapTap/TapCommon-Unity.git#2.1.8",
"com.taptap.tds.bootstrap":"https://github.com/TapTap/TapBootstrap-Unity.git#2.1.8",
// 动态
"com.taptap.tds.moment":"https://github.com/TapTap/TapMoment-Unity.git#2.1.8",
}

设置回调

设置回调以获取动态的状态变化。

TapMoment.SetCallback((code, msg) => {
Debug.Log(code + "---" + msg);
});

回调方法中 code 表示事件类型,现支持的回调类型如下:

回调回调值说明
CALLBACK_CODE_PUBLISH_SUCCESS10000动态发布成功
CALLBACK_CODE_PUBLISH_FAIL10100动态发布失败
CALLBACK_CODE_PUBLISH_CANCEL10200关闭动态发布页面
CALLBACK_CODE_GET_NOTICE_SUCCESS20000获取新消息成功
CALLBACK_CODE_GET_NOTICE_FAIL20100获取新消息失败
CALLBACK_CODE_MOMENT_APPEAR30000动态页面打开
CALLBACK_CODE_MOMENT_DISAPPEAR30100动态页面关闭
CALLBACK_CODE_CLOSE_CANCEL50000取消关闭所有动态界面(弹框点击取消按钮)
CALLBACK_CODE_CLOSE_CONFIRM50100确认关闭所有动态界面(弹框点击确认按钮)
CALLBACK_CODE_LOGIN_SUCCESS60000动态页面内登录成功
CALLBACK_CODE_SCENE_EVENT70000场景化入口回调

获取新消息

定时调用获取消息通知的接口,有新信息时可以在 TapTap 动态入口显示小红点,提醒玩家查看新动态。

TapMoment.FetchNotification();

获取消息通知的结果会在本文刚开始设置的回调中返回,codeCALLBACK_CODE_GET_NOTICE_SUCCESS20000)表示获取成功,CALLBACK_CODE_GET_NOTICE_FAIL20100)表示获取失败。 获取成功时,msg 为新消息数量,0 表示没有新消息。

提示

为了方便玩家查看好友动态、游戏公告等,我们建议将 TapTap 动态入口放在显眼的位置,每分钟调用 1 次获取消息通知的接口。

获取消息通知时,如果没有新消息(msg0),那么游戏需要清除界面上的小红点。 同样,打开 TapTap 动态页面后,游戏也需要清除界面上的小红点。

显示动态页面

在游戏中显示 TapTap 动态页面,在这个页面,玩家不仅可以查看动态,还能发布新动态。

TapMoment.Open(TapSDK.Orientation.ORIENTATION_LANDSCAPE);
备注

打开动态页面时,请先屏蔽游戏自身的声音,以免干扰动态内的视频声音。

如需要动态能支持横竖屏随设备自动旋转,需要游戏自身能支持横竖屏。

如前所述,打开动态页面后别忘了清除动态页面入口处的小红点。

动态页面的背景图可以配置,点击查看图解。 背景图需要人工审核后才能生效,请预留充足的时间。

场景化入口

打开动态页面跳转到指定的页面

信息

该功能当前处于测试阶段,如需开通,请联系商务

var sceneDic = new Dictionary<string, object>() { { TapMomentConstants.TapMomentPageShortCutKey, sceneId } };
TapMoment.DirectlyOpen(Orientation.ORIENTATION_DEFAULT, TapMomentConstants.TapMomentPageShortCut, sceneDic);

参数说明

参数说明
orientation打开方向
page固定为 TapMomentConstants.TapMomentPageShortCut
Dictionary其中 TapMomentConstants.TapMomentPageShortCutKey 固定,第二个参数为要需要跳转的页面 id

场景化入口回调格式说明

SDK 回调结构

字段名值类型required说明
sceneId字符串场景化入口 ID
eventType字符串枚举的事件类型,如 VIEW,FORWARD,VOTE 等
eventPayload字符串根据类型自定义的 JSON 字符串
timestamp整数unix 时间戳,ms

事件类型

eventTypeeventPayload (未序列化)说明
READY{}已成功落地,将在 dom 挂载时触发(获取数据之前)
REPOST{}转发
VOTE{ isCancel: boolean }点赞(含是否取消),仅帖子本身
FOLLOW{ isCancel: boolean }关注(含是否取消),仅帖子本身
COMMENT{}评论,仅帖子本身

关闭动态页面

玩家可以在动态页面退出。 但在特定场景下,游戏可能需要主动关闭动态页面。

比如,玩家排位等待结束,准备进入对局时提示玩家关闭动态页面,玩家确认后关闭。

TapMoment.Close("提示", "匹配成功,进入游戏");

用户的选择会通过回调返回:

  • CALLBACK_CODE_CLOSE_CANCEL(50000),表示玩家点了「取消」,选择不关闭动态页面。
  • CALLBACK_CODE_CLOSE_CONFIRM(50100),表示玩家点了「确认」,选择关闭动态页面。

如果需要直接关闭动态窗口,不弹出二次确认框:

TapMoment.Close();

一键发布

信息

这是可选功能,请根据项目需求决定是否在游戏中加入这一功能。

我们推荐游戏让玩家直接在动态页面发布新动态。 不过,SDK 也提供了发布图文动态的 API,以支持「一键发动态」等需求。 图文动态包括单张或多张图片及相应的文字内容。

string content = "我是描述";
string[] images = {"imgpath01","imgpath02","imgpath03"};
TapMoment.Publish(Orientation.ORIENTATION_LANDSCAPE, images, content);
信息

玩家在动态页面可以发布图文动态和视频动态。 「一键发布」只支持发布图文动态。