mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
0.5.6
插件系统再进化
This commit is contained in:
41
LanAirApp/docs/PLUGIN_DEVELOPMENT.md
Normal file
41
LanAirApp/docs/PLUGIN_DEVELOPMENT.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 插件开发文档
|
||||
|
||||
LanMountainDesktop 插件基于 `LanMountainDesktop.PluginSdk` 开发。
|
||||
|
||||
`LanAirApp/` 负责对外发布插件开发标准、示例插件和打包工具;宿主应用内部的插件加载与解析逻辑位于 `LanMountainDesktop/plugins/`。
|
||||
`LanMountainDesktop.PluginSdk` 只提供插件作者需要依赖的开发契约,不再承载宿主侧运行时加载实现。
|
||||
|
||||
## 必需文件
|
||||
- `plugin.json`
|
||||
- `plugin.json` 中声明的入口程序集
|
||||
- 使用插件入口特性标记的入口类型
|
||||
|
||||
## 推荐开发流程
|
||||
1. 以 `LanAirApp/samples/LanMountainDesktop.SamplePlugin` 为起点。
|
||||
2. 修改 `plugin.json`,填写你自己的插件 `id`、名称、作者、版本和入口程序集。
|
||||
3. 实现 `IPlugin` 或继承 `PluginBase`。
|
||||
4. 通过 `IPluginContext` 注册服务、设置页和桌面组件。
|
||||
5. 将输出内容打包为 `.laapp` 文件。
|
||||
|
||||
## 运行时能力
|
||||
- 插件可以注册自己的设置页。
|
||||
- 插件可以注册自己的桌面组件。
|
||||
- 插件可以注册自己的服务,并通过插件消息总线进行通信。
|
||||
- 宿主优先加载 `.laapp` 包,其次才是散装清单。
|
||||
|
||||
## 多语言建议
|
||||
- 插件应当内置 `Localization/zh-CN.json` 与 `Localization/en-US.json`。
|
||||
- 插件界面文案、组件文案、状态文案建议统一通过插件本地化层读取。
|
||||
- 建议优先读取宿主传入的语言代码,再回退到插件默认语言。
|
||||
|
||||
## 目录建议
|
||||
一个标准插件项目建议至少包含:
|
||||
- `plugin.json`
|
||||
- `Localization/zh-CN.json`
|
||||
- `Localization/en-US.json`
|
||||
- 插件程序集与依赖文件
|
||||
|
||||
## 示例项目与工具
|
||||
- 示例插件:`LanAirApp/samples/LanMountainDesktop.SamplePlugin`
|
||||
- 打包工具:`LanAirApp/tools/LanMountainDesktop.PluginPackager`
|
||||
- 标准模板:`LanAirApp/standards/plugin.template.json`
|
||||
Reference in New Issue
Block a user