# 插件API手册
# onPluginReady
插件应用初始化完成时触发
focusany.onPluginReady((data) => {
// data.actionName 动作名称
// data.actionMatch 动作
// data.actionMatchFiles 匹配到的文件
// data.requestId 请求ID
// data.reenter 是否重新进入,对于 singleton 的插件,当再次调用时为 true
// data.isFastPanel 是否是快捷面板
});
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# onPluginExit
插件应用退出时触发
focusany.onPluginExit(() => {
});
1
2
3
2
3
# onPluginEvent
插件事件触发
focusany.onPluginEvent('xxxx', (data) => {
})
1
2
2
# isMainWindowShown
插件主窗口是否显示
# hideMainWindow
隐藏插件主窗口
# showMainWindow
显示插件主窗口
# isFastPanelWindowShown
快捷面板窗口是否显示
# showFastPanelWindow
显示快捷面板窗口
# hideFastPanelWindow
隐藏快捷面板窗口
# setExpendHeight
设置插件的高度
focusany.setExpendHeight(300);
1
# setSubInput
设置输入框监听
focusany.setSubInput((keywords) => {
console.log(keywords);
}, '请输入关键字', true, true);
1
2
3
2
3
# removeSubInput
移除输入框监听
# setSubInputValue
获取子输入框的值
focusany.setSubInputValue('value');
1
# subInputBlur
子输入框失去焦点
# getPluginRoot
获取插件根目录
# getPluginConfig
获取插件配置文件 config.json
# getPluginInfo
获取插件信息
# getPluginEnv
获取插件环境
# getQuery
获取插件查询信息
focusany.getQuery(requestId);
1
# createBrowserWindow
创建窗口
# outPlugin
关闭插件
# isDarkColors
是否是暗色主题
# setAction
设置插件动作
focusany.setAction({
name: 'actionName',
title: '动作名称',
icon: 'icon',
})
1
2
3
4
5
2
3
4
5
# removeAction
移除插件动作
focusany.removeAction('actionName');
1
# getActions
获取插件动作
# redirect
打开插件动作
focusany.redirect('actionName'}
1
# showToast
显示提示
focusany.showToast('提示内容', { duration: 3000, status: 'info' });
1
# showNotification
显示通知
focusany.showNotification('通知内容');
1
# showMessageBox
显示消息框
focusany.showMessageBox('消息内容', { title: '消息标题', yes: '确定', no: '取消' });
1
# showOpenDialog
打开文件选择框
# showSaveDialog
打开文件保存框
# screenCapture
截图
focusany.screenCapture((imgBase64) => {
console.log(imgBase64);
});
1
2
3
2
3
# getNativeId
获取设备ID
# getAppVersion
获取软件版本
# getPath
获取路径
focusany.getPath('home');
1
# getFileIcon
获取文件图标
focusany.getFileIcon('path');
1
# copyFile
复制文件到剪贴板
focusany.copyFile('file');
1
# copyImage
复制图片到剪贴板
focusany.copyImage('image');
1
# copyText
复制文本到剪贴板
focusany.copyText('text');
1
# getClipboardText
获取剪贴板文本
# getClipboardImage
获取剪贴板图片
# getClipboardFiles
获取剪贴板文件
# shellOpenPath
打开路径
focusany.shellOpenPath('fullPath');
1
# shellShowItemInFolder
显示文件夹
focusany.shellShowItemInFolder('fullPath');
1
# shellOpenExternal
打开链接
# shellBeep
播放声音
# simulateKeyboardTap
模拟键盘按键
focusany.simulateKeyboardTap('key', ['ctrl', 'shift']);
1
# getCursorScreenPoint
获取鼠标位置
# getDisplayNearestPoint
获取显示器
# isMacOs
是否是MacOS
# isWindows
是否是Windows
# isLinux
是否是Linux
# getPlatformArch
获取平台架构
# sendBackendEvent
发送后端事件
focusany.sendBackendEvent('event', { data }, { timeout: 3000 });
1
# db
数据库操作
# db.put
添加文档
focusany.db.put(doc);
1
# db.get
获取文档
focusany.db.get(id);
1
# db.remove
删除文档
focusany.db.remove(doc);
1
# db.bulkDocs
批量添加文档
focusany.db.bulkDocs(docs);
1
# db.allDocs
批量获取文档
focusany.db.allDocs(key);
1
# db.postAttachment
保存附件
focusany.db.postAttachment(docId, attachment, type);
1
# db.getAttachment
获取附件
focusany.db.getAttachment(docId);
1
# db.getAttachmentType
获取附件类型
focusany.db.getAttachmentType(docId);
1
# dbStorage
本地存储
# dbStorage.setItem
设置存储
focusany.dbStorage.setItem(key, value);
1
# dbStorage.getItem
获取存储
focusany.dbStorage.getItem(key);
1
# dbStorage.removeItem
移除存储
focusany.dbStorage.removeItem(key);
1
# fastPanel
快捷面板
# fastPanel.setHeight
设置快捷面板当前插件渲染区域的高度
focusany.fastPanel.setHeight(300);
1
# fastPanel.getHeight
获取快捷面板当前插件渲染区域的高度
focusany.fastPanel.getHeight();
1
# detach
分离窗口
# detach.setTitle
设置分离窗口的标题
focusany.detach.setTitle('标题');
1
# detach.setPosition
设置分离窗口的位置
focusany.detach.setPosition('center');
1
# detach.setAlwaysOnTop
设置分离窗口是否置顶
focusany.detach.setAlwaysOnTop(true);
1
# detach.setSize
设置分离窗口的大小
focusany.detach.setSize(800, 600);
1
# util
工具
# util.randomString
生成随机字符串
focusany.util.randomString(10);
1
# util.bufferToBase64
Buffer 转 Base64
focusany.util.bufferToBase64(buffer);
1
# util.datetimeString
获取当前时间戳字符串
focusany.util.datetimeString();
1
# util.base64Encode
数据转 Base64
focusany.util.base64Encode(data);
1
# util.base64Decode
Base64 转数据
focusany.util.base64Decode(data);
1
# util.md5
MD5 摘要
focusany.util.md5(data);
1
# util.save
保存文件
focusany.util.save('filename', 'data', { isBase64: true });
1