ctx.ui 管理由扩展类 render() 提供的程序 UI。它与编辑器创建的可视化界面是两套入口;后者使用 ctx.visualUI

API

方法返回值说明
show(id, props?, options?)void | Promise<void>显示指定程序 UI
hide(id)void | Promise<void>隐藏指定程序 UI
hideAll()void | Promise<void>隐藏全部程序 UI
isVisible(id)boolean查询指定 UI 是否可见
options 支持 sizepositioninteractable。当前扩展内通常传 UI 模块的短 id。

案例:打开成就墙

输入: 当前扩展中存在 id 为 achievement-wall 的程序 UI,打开前 isVisible() 返回 false
const before = ctx.ui.isVisible("achievement-wall");

await ctx.ui.show(
  "achievement-wall",
  { initialTab: "unlocked" },
  {
    size: "(100%, 100%)",
    position: "(0, 0)",
    interactable: true,
  },
);

const after = ctx.ui.isVisible("achievement-wall");
console.log({ before, after });
输出:
{
  "before": false,
  "after": true
}
成就墙收到 { initialTab: "unlocked" } 作为 props,并以全屏、可交互容器显示。