Mj·Dock SDK API 参考
本文档详细介绍了 Mj·Dock SDK 的核心接口与类。所有 API 均位于 MjDockApp.SDK 命名空间下。
IPluginContext
插件上下文接口,通过 InitializeAsync(IPluginContext context) 获取。这是插件与宿主交互的主要入口。
UI 操作
ShowWindow
void ShowWindow(Window window, bool isDialog = false)显示一个 WPF 窗口。如果 isDialog 为 true,则以模态对话框形式运行。
ShowToast
void ShowToast(string message, bool isError = false)在屏幕底部显示一个短暂的 Toast 提示消息。
ShowDialogAsync
Task<bool?> ShowDialogAsync(Window window)异步显示对话框窗口,并等待窗口关闭。
系统服务
GetClipboardTextAsync
Task<string?> GetClipboardTextAsync()获取当前剪贴板中的纯文本内容。
SetClipboardTextAsync
Task SetClipboardTextAsync(string text)将指定文本写入系统剪贴板。
CaptureScreenAsync
Task<System.Drawing.Bitmap?> CaptureScreenAsync()启动截图流程。当用户完成截图时返回 Bitmap 对象;如果用户取消则返回 null。
注意: 需要在
plugin.json 中声明 ScreenCapture 权限。 OpenFileAsync / OpenUrlAsync
Task OpenFileAsync(string path, string? arguments = null)
Task OpenUrlAsync(string url)打开本地文件或系统默认浏览器访问 URL。
数据存储
GetLocalValue / SetLocalValue
T? GetLocalValue<T>(string key, T? defaultValue = default)
void SetLocalValue(string key, object? value)简单的键值对存储,用于保存插件配置。数据会持久化到插件的独立数据目录中。
Enums (枚举)
PluginPermission
定义插件所需的权限类型,需在清单文件中声明。
ClipboardRead: 读取剪贴板ClipboardWrite: 写入剪贴板FileSystemRead: 读取文件系统ScreenCapture: 屏幕截图OcrServiceAccess: 使用内置 OCR 引擎
ExpandMode
用于侧边栏插件的展开模式。
Single: 点击时展开,点击外部自动关闭Multiple: 可与其他面板并存
辅助类 helper
SDK 提供了一些静态辅助类来简化常见操作。
PluginIconHelper
提供了一组常用的预定义矢量图标(DrawingImage)。
// 示例
ResultItem item = new ResultItem
{
Icon = PluginIconHelper.Settings, // 设置图标
Title = "Settings"
};