Skip to content

动态指令

很多时候,插件应用中会提供一些功能供用户进行个性化设置(例如:网页快开插件应用),这部分配置无法在 plugin.json 事先定义好,所以我们提供了以下方法对插件应用功能进行动态增减。

utools.getFeatures([codes])

获取插件应用动态创建的功能。

类型定义

ts
function getFeatures(): Feature[];
function getFeatures(codes: string[]): Feature[];
Feature 类型定义
ts
interface Feature {
  code: string;
  explain: string;
  icon: string;
  platform: string;
  cmds: Cmd[];
}

字段说明

  • code

    与 plugin.json 中 features.code 一致

  • explain

    与 plugin.json 中 features.explain 一致

  • icon

    与 plugin.json 中 features.icon 一致

  • platform

    与 plugin.json 中 features.platform 一致

  • cmds

    与 plugin.json 中 features.cmds 一致

示例代码

ts
// 获取所有动态功能
const features = utools.getFeatures();
console.log(features);
// 获取特定 code
const features = utools.getFeatures(["code-1", "code-2"]);
console.log(features);

utools.setFeature(feature)

为本插件应用动态新增某个功能。

类型定义

ts
function setFeature(feature: Feature): void;

Feature 类型参考 Feature 类型定义

示例代码

ts
utools.setFeature({
  code: "hosts",
  explain: "hosts切换",
  // "icon": "res/xxx.png",
  // "icon": "data:image/png;base64,xxx...",
  // "platform": ["win32", "darwin", "linux"]
  cmds: ["hosts"],
});

utools.removeFeature(code)

动态删除本插件应用的某个功能。

类型定义

ts
function removeFeature(code: string): Boolean;

code 为要删除的功能的 code

示例代码

ts
utools.removeFeature("code");