开发指南
引入方式
- Unity
- UE
"com.xd.sdk.announcement": "6.23.6"
- 开启 XDGAnnouncement 插件
- 在项目的
ModuleRules
(*.Build.cs 文件) 添加对 XDGAnnouncement 模块的依赖
PrivateDependencyModuleNames.Add("XDGAnnouncement");
准备工作
获取公告数据
- Unity
- UE
在 XD.SDK.Announcement.XDGAnnouncementManager
类中提供了 GetAnnouncements()
获取公告数据,如:
XDGAnnouncementManager.GetAnnouncements(announcements => {
StringBuilder sb = new StringBuilder();
foreach (XDGAnnouncement announcement in announcements) {
sb.AppendLine(JsonConvert.SerializeObject(announcement));
}
ResultText.text = sb.ToString();
}, err => {
ResultText.text = err.error_msg;
});
获取当前 SDK 语言活跃的公告
FXDGAnnouncementManager::GetAnnouncements(
FAnnouncementCallback::CreateLambda([](const TArray<FXDGAnnouncement>& Announcements)
{
// Announcements 为返回的公告数据
}),
FXDGError::FDelegate::CreateLambda([](const FXDGError& Error)
{
// 获取失败
}));
公告数据结构
- Unity
- UE
公告数据结构定义如下:
public class XDGAnnouncement {
// 公告 ID
[JsonProperty("id")]
public long Id { get; set; }
// 公告类型
[JsonProperty("type")]
public string Type { get; set; }
// 短标题
[JsonProperty("shortTitle")]
public string ShortTitle { get; set; }
// 长标题
[JsonProperty("longTitle")]
public string LongTitle { get; set; }
// 发布时间
[JsonProperty("publishTime")]
public long PublishTime { get; set; }
// 过期时间
[JsonProperty("expireTime")]
public long ExpireTime { get; set; }
// 标题背景
[JsonProperty("image")]
public string Image { get; set; }
// 维度信息,包含服务器、分发渠道等
[JsonProperty("dimensions")]
public List<Dictionary<string, string>> Dimensions { get; set; }
// 正文
[JsonProperty("content")]
public string Content { get; set; }
}
公告数据结构定义如下:
struct XDGANNOUNCEMENT_API FXDGAnnouncement
{
/** 公告 ID */
int64 Id = 0;
/** 公告类型 */
FString Type;
/** 短标题 */
FString ShortTitle;
/** 长标题 */
FString LongTitle;
/** 发布 Unix 时间戳 */
int64 PublishTime = 0;
/** 到期 Unix 时间戳 */
int64 ExpireTime = 0;
/** 标题背景 */
FString Image;
/** 维度信息,包含服务器、分发渠道等 */
TArray<TSharedRef<FJsonObject>> Dimensions;
/** 正文 */
FString Content;
};