Skip to content
开发者扩展

系统介绍

NOTE

扩展能力自启动器版本 1.0.0 起提供

SJMCL 的扩展系统是一套前端扩展运行时,旨在拓展启动器的界面与功能。扩展通过清单文件声明自身,通过贡献点挂载入启动器的界面,并通过宿主注入的 API 获取可用能力。

系统模型

一套扩展由以下部分组成:

  • 清单文件:描述扩展标识、名称、版本和入口
  • 贡献点:通过声明不同的界面贡献点,在不同位置拓展启动器的界面,定义扩展的交互能力
  • 宿主能力:由启动器注入 ReactChakraUI、启动器运行时数据、上下文接口。

扩展脚本运行在受限制的宿主环境中

注册流程

扩展从导入到挂载的流程如下:

  1. 用户导入 .sjmclx.zip 包。
  2. 启动器解压扩展包并读取 sjmcl.ext.json
  3. 若存在 frontend.entry,启动器加载对应脚本。
  4. 脚本读取 document.currentScript.dataset.extensionToken
  5. 脚本调用 window.registerExtension(factory, token)
  6. 宿主执行 factory(api),读取返回的贡献点。
  7. 贡献点被挂载到首页、设置页、独立页面等位置。

页面与挂载点

目前启动器允许扩展提供以下界面贡献:

  • 首页卡片
  • 扩展设置页
  • 自定义页面
  • (独立窗口)自定义页面

这些入口都由扩展在注册时显式声明。