Localize sample UI and document release conventions

This commit is contained in:
2026-04-10 22:38:28 +08:00
parent 48eeb79d7d
commit ea5b96507d
37 changed files with 1012 additions and 304 deletions

View File

@@ -2,6 +2,10 @@ using System;
using System.Collections.Generic;
using System.Threading.Tasks;
/// <summary>
/// Brisk SDK 的静态总入口。
/// 初始化完成后,开发者可以通过 <c>Brisk.Auth</c>、<c>Brisk.Leaderboard</c> 等模块直接访问能力。
/// </summary>
public static class Brisk
{
private static BriskContext s_context;
@@ -17,40 +21,101 @@ public static class Brisk
Space = new BriskSpaceModule();
}
/// <summary>
/// SDK 初始化完成后触发。
/// </summary>
public static event Action OnInitialized;
/// <summary>
/// 登录成功并保存会话后触发。
/// </summary>
public static event Action OnLoggedIn;
/// <summary>
/// 主动登出并清理本地会话后触发。
/// </summary>
public static event Action OnLoggedOut;
/// <summary>
/// 发生维护、封禁、强更等严重阻断错误时触发。
/// </summary>
public static event Action<BriskBlockingException> OnBlockingError;
/// <summary>
/// 登录态失效并清空本地会话时触发。
/// </summary>
public static event Action<BriskAuthExpiredException> OnAuthExpired;
/// <summary>
/// 认证模块入口。
/// </summary>
public static BriskAuthModule Auth { get; }
/// <summary>
/// 玩家模块入口。
/// </summary>
public static BriskPlayerModule Player { get; }
/// <summary>
/// 动态配置模块入口。
/// </summary>
public static BriskConfigModule Config { get; }
/// <summary>
/// 公告模块入口。
/// </summary>
public static BriskAnnouncementsModule Announcements { get; }
/// <summary>
/// 排行榜模块入口。
/// </summary>
public static BriskLeaderboardModule Leaderboard { get; }
/// <summary>
/// 云存档模块入口。
/// </summary>
public static BriskArchiveModule Archive { get; }
/// <summary>
/// 玩家空间模块入口。
/// </summary>
public static BriskSpaceModule Space { get; }
/// <summary>
/// 当前 SDK 是否已完成初始化。
/// </summary>
public static bool IsInitialized => s_context != null;
/// <summary>
/// 当前是否存在可用登录态。
/// </summary>
public static bool IsLoggedIn => s_context != null && s_context.Session.HasAccessToken;
/// <summary>
/// 当前访问令牌。
/// </summary>
public static string AccessToken => s_context != null ? s_context.Session.AccessToken : null;
/// <summary>
/// 当前玩家 ID。
/// </summary>
public static string PlayerId => s_context != null ? s_context.Session.PlayerId : null;
/// <summary>
/// 当前登录身份摘要。
/// </summary>
public static BriskIdentity Identity => s_context != null ? s_context.Session.Identity : null;
/// <summary>
/// 当前初始化选项。
/// </summary>
public static BriskOptions Options => s_context != null ? s_context.Options : null;
/// <summary>
/// 初始化阶段获取到的 bootstrap 结果。
/// </summary>
public static BriskBootstrapResult Bootstrap => s_context != null ? s_context.Bootstrap : null;
/// <summary>
/// 初始化 SDK并执行 bootstrap 与本地会话恢复。
/// </summary>
/// <param name="options">初始化选项。</param>
public static async Task InitializeAsync(BriskOptions options)
{
if (options == null)
@@ -79,16 +144,27 @@ public static class Brisk
}
}
/// <summary>
/// 关闭 SDK 并清空当前上下文。
/// </summary>
public static void Shutdown()
{
s_context = null;
}
/// <summary>
/// 设置严重错误的展示器。
/// </summary>
/// <param name="presenter">自定义错误展示器;传入 null 时恢复默认展示器。</param>
public static void SetErrorPresenter(IBriskErrorPresenter presenter)
{
GetRequiredContext().ErrorPresenter = presenter ?? BriskDefaultErrorPresenter.Instance;
}
/// <summary>
/// 设置阻断错误确认后的退出回调。
/// </summary>
/// <param name="exitHandler">项目方自定义退出逻辑。</param>
public static void SetExitHandler(Action exitHandler)
{
GetRequiredContext().ExitHandler = exitHandler;

View File

@@ -1,17 +1,50 @@
using System;
/// <summary>
/// Brisk SDK 初始化参数。
/// </summary>
public sealed class BriskOptions
{
/// <summary>
/// 服务端基础地址。可以传主机地址SDK 会自动补上 <c>/api</c>。
/// </summary>
public string BaseUrl;
/// <summary>
/// 项目标识。
/// </summary>
public string GameKey;
/// <summary>
/// 客户端版本号。
/// </summary>
public string ClientVersion;
/// <summary>
/// 设备标识。
/// </summary>
public string DeviceId;
/// <summary>
/// 是否启用调试日志。
/// </summary>
public bool EnableLog;
/// <summary>
/// 初始化时是否主动校验本地会话有效性。
/// </summary>
public bool ValidateSessionOnInitialize = true;
/// <summary>
/// 自定义登录态持久化实现。
/// </summary>
public IBriskTokenStore TokenStore;
/// <summary>
/// 自定义严重错误展示器。
/// </summary>
public IBriskErrorPresenter ErrorPresenter;
/// <summary>
/// 阻断错误确认后的退出处理逻辑。
/// </summary>
public Action ExitHandler;
/// <summary>
/// 校验并规范化初始化参数。
/// </summary>
public void Validate()
{
if (string.IsNullOrWhiteSpace(BaseUrl))

View File

@@ -1,6 +1,15 @@
/// <summary>
/// 自定义严重错误展示接口。
/// </summary>
public interface IBriskErrorPresenter
{
/// <summary>
/// 展示维护、封禁、强更等阻断错误。
/// </summary>
void ShowBlockingError(BriskBlockingException exception);
/// <summary>
/// 展示登录态失效提示。
/// </summary>
void ShowAuthExpired(BriskAuthExpiredException exception);
}

View File

@@ -1,10 +1,22 @@
using System.Threading.Tasks;
/// <summary>
/// 自定义登录态持久化接口。
/// </summary>
public interface IBriskTokenStore
{
/// <summary>
/// 保存当前登录会话。
/// </summary>
Task SaveAsync(BriskStoredSession session);
/// <summary>
/// 读取本地保存的登录会话。
/// </summary>
Task<BriskStoredSession> LoadAsync();
/// <summary>
/// 清空本地保存的登录会话。
/// </summary>
Task ClearAsync();
}