mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
29 lines
1.0 KiB
C#
29 lines
1.0 KiB
C#
// Copyright (c) 2025-2026 GeWuYou
|
||
// SPDX-License-Identifier: Apache-2.0
|
||
|
||
using GFramework.Game.Abstractions.Routing;
|
||
|
||
namespace GFramework.Game.Abstractions.UI;
|
||
|
||
/// <summary>
|
||
/// UI路由守卫接口
|
||
/// 用于拦截和处理UI路由切换,实现业务逻辑解耦
|
||
/// </summary>
|
||
public interface IUiRouteGuard : IRouteGuard<IUiPageBehavior>
|
||
{
|
||
/// <summary>
|
||
/// 进入UI前的检查
|
||
/// </summary>
|
||
/// <param name="uiKey">目标UI标识符</param>
|
||
/// <param name="param">进入参数</param>
|
||
/// <returns>true表示允许进入,false表示拦截</returns>
|
||
ValueTask<bool> CanEnterAsync(string uiKey, IUiPageEnterParam? param);
|
||
|
||
/// <summary>
|
||
/// 离开UI前的检查。
|
||
/// 该成员显式细化了通用路由守卫的离开检查,使 UI 守卫在 API 文档中保持 UI 语义。
|
||
/// </summary>
|
||
/// <param name="uiKey">当前UI标识符</param>
|
||
/// <returns>true表示允许离开,false表示拦截</returns>
|
||
new ValueTask<bool> CanLeaveAsync(string uiKey);
|
||
} |