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"
};