Appearance
交互事件 API
你可以根据需要,事先传递一些回调函数给这些事件,uTools 会在对应事件被触发时调用它们。
utools.onPluginEnter(callback)
进入插件应用时,uTools 将会主动调用这个方法。
类型定义
ts
function onPluginEnter(callback: (action: PluginEnterAction) => void): void;
PluginEnterAction
类型定义
ts
interface PluginEnterAction {
code: string;
type: "text" | "img" | "file" | "regex" | "over" | "window";
payload: string | MatchFile[] | MatchWindow;
from: "main" | "panel" | "hotkey" | "reirect";
option?: {
mainPush: boolean;
};
}
字段说明
code
plugin.json 配置的 feature.code
type
plugin.json 配置的 feature.cmd.type
payload
feature.cmd.type 对应匹配的数据
option
feature.mainPush 设置为 ture ,且当用户选择 onMainPush 返回的选项进入时
from
根据不同触发来源提供:
main
: 主面板panel
: 超级面板hotkey
: 快捷键reirect
: 重定向
版本:>=5.2.0
MatchFile
类型定义
ts
interface MatchFile {
isFile: boolean;
isDirectory: boolean;
name: string;
path: string;
}
MatchWindow
类型定义
ts
interface MatchWindow {
id: number;
class: string;
title: string;
x: number;
y: number;
width: number;
height: number;
appPath: string;
pid: number;
app: string;
}
示例代码
ts
utools.onPluginEnter(({ code, type, payload, option, from }) => {
console.log("用户进入插件应用", code, type, payload);
console.log("用户inrush插件的方式:", from);
});
utools.onPluginOut(callback)
插件应用退出时触发
类型定义
ts
function onPluginOut(callback: (processExited: boolean) => void): void;
processExited
为true
时,表示插件应用完全退出
示例代码
ts
utools.onPluginOut((processExited) => {
if (processExited) {
console.log("用户退出插件应用");
} else {
console.log("插件应用被隐藏");
}
});
utools.onMainPush(callback, onSelect)
推送内容到搜索面板,并设置从搜索面板启动插件时的回调
注意
向搜索面板推送消息(需要设置 feature.mainPush 设置为 true),详情请参考 plugin.json#feature.mainPush
类型定义
ts
function onMainPush(
callback: (action: MainPushAction) => MainPushResult[],
onSelect: (action: PluginEnterAction) => boolean | undefined
): void;
- PluginEnterAction 参考
onPluginEnter#PluginEnterAction
- onSelect 返回
true
表示进入插件
MainPushAction
类型定义
ts
interface MainPushAction {
code: string;
type: "text" | "img" | "file" | "regex" | "over" | "window";
payload: string | MatchFile[] | MatchWindow;
}
字段说明
code
plugin.json 配置的 feature.code
type
plugin.json 配置的 feature.cmd.type
payload
feature.cmd.type 对应匹配的数据,
MatchFile
和MatchWindow
类型参考 onPluginEnter
MainPushResult
类型定义
ts
interface MainPushResult {
icon: string;
title: string;
text: string;
}
字段说明
icon
推送消息的图标
title
推送消息的标题
text
推送消息的内容
示例代码
ts
function callback({ code, type, payload }) {
return [
{
icon: "icon.png",
text: "选项1",
title: "help text",
},
{
text: "选项2",
anyField: "xxxx",
},
];
}
function selectCallback({ code, type, payload, option }) {
if (option.xxx) {
// 返回 true 表示需要进入插件应用处理
return true;
}
// 不进入插件应用 "执行粘贴文本"
utools.hideMainWindowPasteText(option.text);
}
utools.onMainPush(callback, selectCallback);
utools.onPluginDetach(callback)
用户对插件应用进行分离操作时触发
类型定义
ts
function onPluginDetach(callback: () => void): void;
示例代码
ts
utools.onPluginDetach(() => {
console.log("插件分离");
});
utools.onDbPull(callback)
当此插件应用的数据在其他设备上被更改后同步到此设备时触发,数据同步相关操作请参考 数据同步