diff --git a/src/docs/utools/api.html b/src/docs/utools/api.html index b2151300..ef180c14 100644 --- a/src/docs/utools/api.html +++ b/src/docs/utools/api.html @@ -1,32 +1,32 @@ -
在插件初始化完成时,uTools会自动在你的window对象上挂载utools对象,它将提供一些特有的api,使你的插件能够更好的与uTools主窗口沟通,并获得一些有意义的底层能力。
你可以根据需要事先定义好一些回调函数,uTools会在事件产生时主动调用它们。
onPluginReady(callback)
callback
Function当插件装载成功,uTools将会主动调用这个方法(生命周期内仅调用一次)。
utools.onPluginReady(() => {
+ uTools API
在插件初始化完成时,uTools会自动在你的window对象上挂载utools对象,它将提供一些特有的api,使你的插件能够更好的与uTools主窗口沟通,并获得一些有意义的底层能力。
事件
你可以根据需要事先定义好一些回调函数,uTools会在事件产生时主动调用它们。
onPluginReady(callback)
callback
Function
当插件装载成功,uTools将会主动调用这个方法(生命周期内仅调用一次)。
示例
utools.onPluginReady(() => {
console.log('插件装配完成,已准备好')
})
-
onPluginEnter(callback)
callback
Function
- Object
code
String
plugin.json 配置的 feature.code
type
String
plugin.json 配置的 feature.cmd.code
payload
String | Object | Array
feature.cmd.type 对应匹配的数据
optional
Array | undefined
存在多个匹配时的可选匹配类型和数据 [{ type, payload }]
每当插件从后台进入到前台时,uTools将会主动调用这个方法。
示例utools.onPluginEnter(({code, type, payload, optional}) => {
+
onPluginEnter(callback)
callback
Function
+ Object
code
String
plugin.json 配置的 feature.code
type
String
plugin.json 配置的 feature.cmd.code
payload
String | Object | Array
feature.cmd.type 对应匹配的数据
optional
Array | undefined
存在多个匹配时的可选匹配类型和数据 [{ type, payload }]
每当插件从后台进入到前台时,uTools将会主动调用这个方法。
示例
utools.onPluginEnter(({code, type, payload, optional}) => {
console.log('用户进入插件', code, type, payload)
})
-
onPluginOut(callback)
callback
Function
每当插件从前台进入到后台时,uTools将会主动调用这个方法。
示例utools.onPluginOut(() => {
+
onPluginOut(callback)
callback
Function
每当插件从前台进入到后台时,uTools将会主动调用这个方法。
示例
utools.onPluginOut(() => {
console.log('用户退出插件')
})
-
onPluginDetach(callback)
callback
Function
用户对插件进行分离操作时,uTools将会主动调用这个方法。
示例utools.onPluginDetach(() => {
+
onPluginDetach(callback)
callback
Function
用户对插件进行分离操作时,uTools将会主动调用这个方法。
示例
utools.onPluginDetach(() => {
console.log('插件被分离')
})
-
onDbPull(callback)
callback
Function
当此插件的数据在其他设备上被更改后同步到此设备时,uTools将会主动调用这个方法
示例utools.onDbPull(() => {
+
onDbPull(callback)
callback
Function
当此插件的数据在其他设备上被更改后同步到此设备时,uTools将会主动调用这个方法
示例
utools.onDbPull(() => {
console.log('onDbPull')
})
-
窗口交互hideMainWindow(isRestorePreWindow)
isRestorePreWindow
Boolean
是否焦点回归到前面的活动窗口,默认 true
返回
Boolean
执行该方法将会隐藏uTools主窗口,包括此时正在主窗口运行的插件,分离的插件不会被隐藏。
示例utools.hideMainWindow()
-
showMainWindow()
返回
Boolean
执行该方法将会显示uTools主窗口,包括此时正在主窗口运行的插件。
示例utools.showMainWindow()
-
setExpendHeight(height)
height
Integer 返回
Boolean
执行该方法将会修改插件窗口的高度。
示例utools.setExpendHeight(100)
-
setSubInput(onChange, placeholder, isFocus)
onChange
Function
Object
text
String
子输入框文本修改时触发
placeholder
String (可选)
子输入框占位符
isFocus
Boolean (可选)
子输入框是否获得焦点,默认 true
返回
Boolean
设置子输入框,进入插件后,原本uTools的搜索条主输入框将会变成子输入框,子输入框可以为插件所使用。

主输入框
子输入框
示例utools.setSubInput(({ text }) => {
+
窗口交互
hideMainWindow(isRestorePreWindow)
isRestorePreWindow
Boolean
是否焦点回归到前面的活动窗口,默认 true
返回
Boolean
执行该方法将会隐藏uTools主窗口,包括此时正在主窗口运行的插件,分离的插件不会被隐藏。
示例
utools.hideMainWindow()
+
showMainWindow()
返回
Boolean
执行该方法将会显示uTools主窗口,包括此时正在主窗口运行的插件。
示例
utools.showMainWindow()
+
setExpendHeight(height)
height
Integer 返回
Boolean
执行该方法将会修改插件窗口的高度。
示例
utools.setExpendHeight(100)
+
setSubInput(onChange, placeholder, isFocus)
onChange
Function
Object
text
String
子输入框文本修改时触发
placeholder
String (可选)
子输入框占位符
isFocus
Boolean (可选)
子输入框是否获得焦点,默认 true
返回
Boolean
设置子输入框,进入插件后,原本uTools的搜索条主输入框将会变成子输入框,子输入框可以为插件所使用。

主输入框
子输入框
示例
utools.setSubInput(({ text }) => {
console.log(text)
}, '搜索')
-
removeSubInput()
返回
Boolean
移出先前设置的子输入框,在插件切换到其他页面时可以重新设置子输入框为其所用。
示例utools.removeSubInput()
-
setSubInputValue(value)
value
String 返回
Boolean
直接对子输入框的值进行设置。
示例utools.setSubInputValue('uTools')
-
subInputFocus()
返回
Boolean
子输入框获得焦点
示例utools.subInputFocus()
-
subInputSelect()
返回
Boolean
子输入框获得焦点并选中
示例utools.subInputSelect()
-
subInputBlur()
返回
Boolean
子输入框失去焦点,插件获得焦点
示例utools.subInputBlur()
-
outPlugin()
返回
Boolean
执行该方法将会退出当前插件。
示例utools.outPlugin()
-
redirect(label, payload)
label
String
feature.cmd.label 名称
payload
String | Object
feature.cmd.type 对应的数据
返回
Boolean
该方法可以携带数据,跳转到另一个插件进行处理,如果用户未安装对应的插件,uTools会弹出提醒并引导进入插件中心下载。
示例//content 为string类型
+
removeSubInput()
返回
Boolean
移出先前设置的子输入框,在插件切换到其他页面时可以重新设置子输入框为其所用。
示例
utools.removeSubInput()
+
setSubInputValue(value)
value
String 返回
Boolean
直接对子输入框的值进行设置。
示例
utools.setSubInputValue('uTools')
+
subInputFocus()
返回
Boolean
子输入框获得焦点
示例
utools.subInputFocus()
+
subInputSelect()
返回
Boolean
子输入框获得焦点并选中
示例
utools.subInputSelect()
+
subInputBlur()
返回
Boolean
子输入框失去焦点,插件获得焦点
示例
utools.subInputBlur()
+
outPlugin()
返回
Boolean
执行该方法将会退出当前插件。
示例
utools.outPlugin()
+
redirect(label, payload)
label
String
feature.cmd.label 名称
payload
String | Object
feature.cmd.type 对应的数据
返回
Boolean
该方法可以携带数据,跳转到另一个插件进行处理,如果用户未安装对应的插件,uTools会弹出提醒并引导进入插件中心下载。
示例
//content 为string类型
utools.redirect('翻译', 'hello world')
//content 为object类型
@@ -49,35 +49,35 @@
'data': '/path/to/img.jpg' //filePath、array
//'data': ['path1', 'path2'] //支持数组
})
-
showOpenDialog(options)
options
Object
与 Electron API dialog.showOpenDialogSync options 一致
返回
Array | undefined
返回选择的文件数组,用户取消返回 undefined
弹出文件选择框
示例utools.showOpenDialog({
+
showOpenDialog(options)
options
Object
与 Electron API dialog.showOpenDialogSync options 一致
返回
Array | undefined
返回选择的文件数组,用户取消返回 undefined
弹出文件选择框
示例
utools.showOpenDialog({
filters: [{ 'name': 'plugin.json', extensions: ['json'] }],
properties: ['openFile']
})
-
showSaveDialog(options)
options
Object
与 Electron API dialog.showSaveDialogSync options 一致
返回
String | undefined
返回选择的路径,用户取消返回 undefined
弹出文件保存框
示例utools.showSaveDialog({
+
showSaveDialog(options)
options
Object
与 Electron API dialog.showSaveDialogSync options 一致
返回
String | undefined
返回选择的路径,用户取消返回 undefined
弹出文件保存框
示例
utools.showSaveDialog({
title: '保存位置',
defaultPath: utools.getPath('downloads')
buttonLabel: '保存'
})
-
showMessageBox(options)
options
Object
与 Electron API dialog.showMessageBoxSync options 一致
返回
Integer
返回点击按钮的索引
弹出消息框
示例utools.showMessageBox({
+
showMessageBox(options)
options
Object
与 Electron API dialog.showMessageBoxSync options 一致
返回
Integer
返回点击按钮的索引
弹出消息框
示例
utools.showMessageBox({
type: 'question',
buttons: ['取消', '关机'],
title: '关机确认',
message: '电脑确定要关机?',
defaultId: 1
})
-
findInPage(text, options)
text
String
要搜索的内容(必填)
options
Object (可选)
与 Electron API contentsfindinpagetext-options options 一致
插件页面中查找内容
示例utools.findInPage('utools')
-
stopFindInPage(action)
action
String
"clearSelection" | "keepSelection" | "activateSelection", 默认 "clearSelection"
停止插件页面中查找
示例utools.stopFindInPage()
-
startDrag(file)
file
String | Array
文件路径 或 文件路径集合
原生拖拽文件到其他窗口
示例utools.startDrag('/path/to/file')
-
createBrowserWindow(url, options)
url
String
相对路径的html文件 例如: test.html?param=xxx
options
Object
与 Electron API new BrowserWindow 参数一样, 注意: preload 需配置相对位置
创建浏览器窗口
示例utools.createBrowserWindow('test.html?param=xxxxxx', {
+
findInPage(text, options)
text
String
要搜索的内容(必填)
options
Object (可选)
与 Electron API contentsfindinpagetext-options options 一致
插件页面中查找内容
示例
utools.findInPage('utools')
+
stopFindInPage(action)
action
String
"clearSelection" | "keepSelection" | "activateSelection", 默认 "clearSelection"
停止插件页面中查找
示例
utools.stopFindInPage()
+
startDrag(file)
file
String | Array
文件路径 或 文件路径集合
原生拖拽文件到其他窗口
示例
utools.startDrag('/path/to/file')
+
createBrowserWindow(url, options)
url
String
相对路径的html文件 例如: test.html?param=xxx
options
Object
与 Electron API new BrowserWindow 参数一样, 注意: preload 需配置相对位置
创建浏览器窗口
示例
utools.createBrowserWindow('test.html?param=xxxxxx', {
title: '测试窗口',
fullscreen: true,
webPreferences: {
preload: 'test/preload.js'
}
})
-
动态增减功能很多时候,插件中会提供一些功能供用户进行个性化设置(例如:网页快开
插件),这部分配置无法在plugin.json
事先定义好,所以我们提供了以下方法对插件功能进行动态增减。
getFeatures()
返回
Array
返回本插件所有动态增加的功能。
const features = utools.getFeatures()
+
动态增减功能
很多时候,插件中会提供一些功能供用户进行个性化设置(例如:网页快开
插件),这部分配置无法在plugin.json
事先定义好,所以我们提供了以下方法对插件功能进行动态增减。
getFeatures()
返回
Array
返回本插件所有动态增加的功能。
const features = utools.getFeatures()
console.log(features)
-
setFeature(feature)
feature
Object
+
setFeature(feature)
feature
Object
格式与
plugin.json
中配置的格式一致
code
Stringexplain
Stringicon
String (可选)platform
Array (可选)cmds
Array返回
Boolean为本插件动态新增某个功能。
utools.setFeature({
"code": "hosts",
"explain": "hosts切换",
@@ -86,17 +86,17 @@
// "platform": ["win32", "darwin", "linux"]
"cmds": ["hosts"]
})
-
removeFeature(code)
code
String返回
Boolean动态删除本插件的某个功能。
utools.removeFeature('code')
-
屏幕取色 & 屏幕截图
screenColorPick(callback)
callback
Function
- 取色结束回调
Object
hex
Stringrgb
String屏幕取色
utools.screenColorPick(({hex, rgb})=>{
+
removeFeature(code)
code
String返回
Boolean动态删除本插件的某个功能。
utools.removeFeature('code')
+
屏幕取色 & 屏幕截图
screenColorPick(callback)
callback
Function
+ 取色结束回调
Object
hex
Stringrgb
String屏幕取色
utools.screenColorPick(({hex, rgb})=>{
console.log(hex) // #FFFFFF
console.log(rgb) // RGB(0, 0, 0)
})
-
screenCapture(callback)
callback
Function
- 截图结束回调
String
图片的Base64字符串
屏幕截图
utools.screenCapture(base64Str => {
+
screenCapture(callback)
callback
Function
+ 截图结束回调
String
图片的Base64字符串
屏幕截图
utools.screenCapture(base64Str => {
utools.redirect('识别图片中文字', { type: 'img', data: base64Str })
})
-
模拟敲击键盘 和 鼠标点击
simulateKeyboardTap(key, ...modifier)
key
String
键值
modifier
String (可选)
功能键
模拟键盘按键
// 模拟键盘敲击 Enter
+
模拟敲击键盘 和 鼠标点击
simulateKeyboardTap(key, ...modifier)
key
String
键值
modifier
String (可选)
功能键
模拟键盘按键
// 模拟键盘敲击 Enter
utools.simulateKeyboardTap('enter')
// windows linux 模拟粘贴
utools.simulateKeyboardTap('v', 'ctrl')
@@ -104,52 +104,52 @@
utools.simulateKeyboardTap('v', 'command')
// 模拟 Ctrl + Alt + A
utools.simulateKeyboardTap('a', 'ctrl', 'alt')
-
simulateMouseMove(x, y)
x
Integery
Integer模拟鼠标移动
utools.simulateMouseMove(100,100)
-
simulateMouseClick(x, y)
x
Integer (可选)y
Integer (可选)模拟鼠标左键单击
utools.simulateMouseClick(100,100)
-
simulateMouseRightClick(x, y)
x
Integer (可选)y
Integer (可选)模拟鼠标右键单击
utools.simulateMouseRightClick(100,100)
-
simulateMouseDoubleClick(x, y)
x
Integer (可选)y
Integer (可选)模拟鼠标双击
utools.simulateMouseDoubleClick(100,100)
-
getCursorScreenPoint()
返回
Object
{ x: Integer, y: Integer }
获取鼠标绝对位置
const point = utools.getCursorScreenPoint()
+
simulateMouseMove(x, y)
x
Integery
Integer模拟鼠标移动
utools.simulateMouseMove(100,100)
+
simulateMouseClick(x, y)
x
Integer (可选)y
Integer (可选)模拟鼠标左键单击
utools.simulateMouseClick(100,100)
+
simulateMouseRightClick(x, y)
x
Integer (可选)y
Integer (可选)模拟鼠标右键单击
utools.simulateMouseRightClick(100,100)
+
simulateMouseDoubleClick(x, y)
x
Integer (可选)y
Integer (可选)模拟鼠标双击
utools.simulateMouseDoubleClick(100,100)
+
getCursorScreenPoint()
返回
Object
{ x: Integer, y: Integer }
获取鼠标绝对位置
const point = utools.getCursorScreenPoint()
console.log(point.x, point.y)
-
getPrimaryDisplay()
返回
Object
获取主显示器
const display = utools.getPrimaryDisplay()
+
getPrimaryDisplay()
返回
Object
获取主显示器
const display = utools.getPrimaryDisplay()
console.log(display)
-
getAllDisplays()
返回
Array
Display对象 集合
获取所有显示器
const displays = utools.getAllDisplays()
+
getAllDisplays()
返回
Array
Display对象 集合
获取所有显示器
const displays = utools.getAllDisplays()
console.log(displays)
-
getDisplayNearestPoint(point)
point
Object
返回
Object
获取位置所在的显示器
const display = utools.getDisplayNearestPoint({x: 100, y: 100 })
+
getDisplayNearestPoint(point)
point
Object
返回
Object
获取位置所在的显示器
const display = utools.getDisplayNearestPoint({x: 100, y: 100 })
console.log(display)
-
getDisplayMatching(rect)
rect
Object
返回
Object
获取矩形所在的显示器
const display = utools.getDisplayMatching({x: 100, y: 100, width: 200, height: 200 })
+
getDisplayMatching(rect)
rect
Object
返回
Object
获取矩形所在的显示器
const display = utools.getDisplayMatching({x: 100, y: 100, width: 200, height: 200 })
console.log(display)
-
copyFile(file)
file
String | Array返回
Boolean复制文件到系统剪贴板
// 复制单个文件
+
copyFile(file)
file
String | Array返回
Boolean复制文件到系统剪贴板
// 复制单个文件
utools.copyFile('/path/to/file')
// 复制多个文件
utools.copyFile(['/path/to/file1', '/path/to/file2'])
-
copyImage(img)
img
String | Buffer返回
Boolean复制图片到系统剪贴板
// 路径
+
copyImage(img)
img
String | Buffer返回
Boolean复制图片到系统剪贴板
// 路径
utools.copyImage('/path/to/img.png')
// base64
utools.copyImage('data:image/png;base64,xxxxxxxxx')
-
copyText(text)
text
String返回
Boolean复制文本
utools.copyText('Hi, uTools')
-
showNotification(body)
body
String显示系统通知
utools.showNotification('Hi, uTools')
-
shellOpenItem(fullPath)
fullPath
String系统默认方式打开给定的文件
utools.shellOpenItem('/path/to/file')
-
shellShowItemInFolder(fullPath)
fullPath
String系统文件管理器中显示给定的文件
utools.shellShowItemInFolder('/path/to/file')
-
shellOpenExternal(url)
url
String系统默认的协议打开URL
// 浏览器打开
+
copyText(text)
text
String返回
Boolean复制文本
utools.copyText('Hi, uTools')
+
showNotification(body)
body
String显示系统通知
utools.showNotification('Hi, uTools')
+
shellOpenItem(fullPath)
fullPath
String系统默认方式打开给定的文件
utools.shellOpenItem('/path/to/file')
+
shellShowItemInFolder(fullPath)
fullPath
String系统文件管理器中显示给定的文件
utools.shellShowItemInFolder('/path/to/file')
+
shellOpenExternal(url)
url
String系统默认的协议打开URL
// 浏览器打开
utools.shellOpenExternal('https://u.tools')
-
shellBeep()
播放哔哔声
utools.shellBeep()
-
getLocalId()
返回
String获取本地ID
console.log(utools.getLocalId())
-
getPath(name)
name
String
+ shellBeep()
播放哔哔声
utools.shellBeep()
+
getLocalId()
返回
String获取本地ID
console.log(utools.getLocalId())
+
getPath(name)
name
String
你可以通过名称请求以下的路径:
home
用户的 home 文件夹(主目录)appData
当前用户的应用数据文件夹,默认对应:
- %APPDATA%
Windows 中~/Library/Application Support
macOS 中userData
储存你应用程序设置文件的文件夹,默认是 appData 文件夹附加应用的名称temp
临时文件夹exe
当前的可执行文件desktop
当前用户的桌面文件夹documents
用户文档目录的路径downloads
用户下载目录的路径music
用户音乐目录的路径pictures
用户图片目录的路径videos
用户视频目录的路径logs
应用程序的日志文件夹返回
String获取路径
// 获取下载路径
+ %APPDATA%
Windows 中 ~/Library/Application Support
macOS 中
userData
储存你应用程序设置文件的文件夹,默认是 appData 文件夹附加应用的名称 temp
临时文件夹 exe
当前的可执行文件 desktop
当前用户的桌面文件夹 documents
用户文档目录的路径 downloads
用户下载目录的路径 music
用户音乐目录的路径 pictures
用户图片目录的路径 videos
用户视频目录的路径 logs
应用程序的日志文件夹 返回
String 获取路径
示例
// 获取下载路径
console.log(utools.getPath('downloads'))
-
getCurrentFolderPath()
返回
String
获取当前文件管理器路径(linux 不支持),呼出uTools前的活动窗口为资源管理器才能获取
示例console.log(utools.getCurrentFolderPath())
-
getCurrentBrowserUrl()
返回
String
获取当前浏览器URL(linux 不支持), 呼出uTools前的活动窗口为浏览器才能获取
MacOs 支持浏览器 Safari、Chrome、Opera、Vivaldi、Brave
Windows 支持浏览器 Chrome、Firefox、Edge、IE、Opera、Brave
示例console.log(utools.getCurrentBrowserUrl())
-
isMacOs()
是否 MacOs 操作系统
示例if (utools.isMacOs()) {
+
getCurrentFolderPath()
返回
String
获取当前文件管理器路径(linux 不支持),呼出uTools前的活动窗口为资源管理器才能获取
示例
console.log(utools.getCurrentFolderPath())
+
getCurrentBrowserUrl()
返回
String
获取当前浏览器URL(linux 不支持), 呼出uTools前的活动窗口为浏览器才能获取
MacOs 支持浏览器 Safari、Chrome、Opera、Vivaldi、Brave
Windows 支持浏览器 Chrome、Firefox、Edge、IE、Opera、Brave
示例
console.log(utools.getCurrentBrowserUrl())
+
isMacOs()
是否 MacOs 操作系统
示例
if (utools.isMacOs()) {
console.log('mac')
}
-
isWindows()
是否 Windows 操作系统
示例if (utools.isWindows()) {
+
isWindows()
是否 Windows 操作系统
示例
if (utools.isWindows()) {
console.log('windows')
}
-
isLinux()
是否 Linux 操作系统
示例if (utools.isLinux()) {
+
isLinux()
是否 Linux 操作系统
示例
if (utools.isLinux()) {
console.log('linux')
}
-
本地数据库传统的B/S结构的程序中,除了前端的开发之外,可能还需要有一台服务器、一门后端语言和一个数据库来处理和存储用户数据,这会带来很大的维护成本和可用性的问题。
uTools的很多插件就像是一个微型的应用程序,总是会碰到一些数据需要持久化存储的场景,为了解决这个问题,我们整合并提供了一个nosql数据库系统,它可以很方便的使用,如果开启同步的话可在多个设备之间实现秒级同步。
utools.db.put(doc)
doc
Object 返回
Object
执行该方法将会创建或更新数据库文档
// 创建请求
+
本地数据库
传统的B/S结构的程序中,除了前端的开发之外,可能还需要有一台服务器、一门后端语言和一个数据库来处理和存储用户数据,这会带来很大的维护成本和可用性的问题。
uTools的很多插件就像是一个微型的应用程序,总是会碰到一些数据需要持久化存储的场景,为了解决这个问题,我们整合并提供了一个nosql数据库系统,它可以很方便的使用,如果开启同步的话可在多个设备之间实现秒级同步。
utools.db.put(doc)
doc
Object 返回
Object
执行该方法将会创建或更新数据库文档
// 创建请求
utools.db.put({
_id: "demo",
data: "demo"
@@ -162,11 +162,11 @@
data: "demo",
_rev: "1-05c9b92e6f24287dc1f4ec79d9a34fa8"
})
-
_id
代表这个文档在数据库中唯一值,如果值不存在,则会创建一个新的文档,如果值已经存在,则会进行更新。你可能已经注意到,返回对象中包含一个rev
属性,这是代表此文档的版本,每次对文档进行更新时,都要带上最新的版本号,否则更新将失败,版本化的意义在于解决同步时数据冲突。
另外需要注意,每次更新时都要传入完整的文档数据,无法对单个字段进行更新。
utools.db.get(id)
id
String 返回
Object
执行该方法将会根据文档ID获取数据
utools.db.get("demo")
+
_id
代表这个文档在数据库中唯一值,如果值不存在,则会创建一个新的文档,如果值已经存在,则会进行更新。你可能已经注意到,返回对象中包含一个rev
属性,这是代表此文档的版本,每次对文档进行更新时,都要带上最新的版本号,否则更新将失败,版本化的意义在于解决同步时数据冲突。
另外需要注意,每次更新时都要传入完整的文档数据,无法对单个字段进行更新。
utools.db.get(id)
id
String 返回
Object
执行该方法将会根据文档ID获取数据
utools.db.get("demo")
// 返回 {_id: "demo", _rev: "3-9836c5c68af5aef618e17d615882942a", data: "demo"}
-
utools.db.remove(doc)
doc
String | Object 返回
Object
执行该方法将会删除数据库文档,可以传入文档对象或文档id进行操作。
utools.db.remove("demo")
+
utools.db.remove(doc)
doc
String | Object 返回
Object
执行该方法将会删除数据库文档,可以传入文档对象或文档id进行操作。
utools.db.remove("demo")
// 返回 {id: "demo", ok: true, rev: "2-effe5dbc23dffc180d8411b23f3108fb"}
-
utools.db.bulkDocs(docs)
docs
Array 返回
Array
执行该方法将会批量更新数据库文档,传入需要更改的文档对象合并成数组进行批量更新。
utools.db.bulkDocs([{
+
utools.db.bulkDocs(docs)
docs
Array 返回
Array
执行该方法将会批量更新数据库文档,传入需要更改的文档对象合并成数组进行批量更新。
utools.db.bulkDocs([{
_id: "demo1",
data: "demo",
_rev: "1-c8817a74e292eda4cba1a45924853af6"
@@ -182,7 +182,7 @@
id: "demo2", ok: true, rev: "2-7857b2801bc0303d2cc0bb82e8afd796"
}]
*/
-
utools.db.allDocs(key)
key
String | Array 返回
Array
执行该方法将会获取所有数据库文档,如果传入字符串,则会返回以字符串开头的文档,也可以传入指定ID的数组,不传入则为获取所有文档。
// 获取所有文档
+
utools.db.allDocs(key)
key
String | Array 返回
Array
执行该方法将会获取所有数据库文档,如果传入字符串,则会返回以字符串开头的文档,也可以传入指定ID的数组,不传入则为获取所有文档。
// 获取所有文档
utools.db.allDocs()
// 传入字符串,则返回id以 demo 开头的文档
@@ -208,9 +208,9 @@
_id: "demo2", _rev: "1-f0399b42cc6123a9cc8503632ba7b3a7", data: "demo"
}]
*/
-
ubrowser
可编程浏览器
getIdleUBrowsers()
返回
Array
获取闲置的 ubrowser
示例console.log(utools.getIdleUBrowsers())
+
ubrowser
可编程浏览器
getIdleUBrowsers()
返回
Array
获取闲置的 ubrowser
示例
console.log(utools.getIdleUBrowsers())
// [{ id: number, title: string, url: string }]
-
setUBrowserProxy(config)
config
Object
与 Electron API 一致
返回
Boolean
设置 ubrowser 代理
示例utools.setUBrowserProxy({
+
setUBrowserProxy(config)
config
Object
与 Electron API 一致
返回
Boolean
设置 ubrowser 代理
示例
utools.setUBrowserProxy({
proxyRules: 'http=foopy:80;ftp=foopy2'
})
\ No newline at end of file
diff --git a/src/docs/utools/config.html b/src/docs/utools/config.html
index 7cc27d46..0749d91a 100644
--- a/src/docs/utools/config.html
+++ b/src/docs/utools/config.html
@@ -1,4 +1,4 @@
-
+ 完整配置 完整配置
如上一章hello world的例子所示,plugin.json
文件可以让你的插件与uTools无缝的结合在一起,下面我们列出了所有可能的配置项及注释供你参考:
{
diff --git a/src/docs/utools/preload.html b/src/docs/utools/preload.html
index 98100b65..fe415775 100644
--- a/src/docs/utools/preload.html
+++ b/src/docs/utools/preload.html
@@ -1,4 +1,4 @@
-
preload.js当你在plugin.json
中配置了preload
属性,将载入对应的预加载脚本。
在传统的web开发中,所有的javascript脚本都在浏览器沙盒中运行,权限被严格限制,所能实现的功能非常有限。
通过preload.js
能够帮你突破沙盒限制,进入一个崭新的JavaScript世界。
preload.js
是一个特殊且单独的文件,不需要与其他业务代码编译在一起,在此文件中可以访问nodejs
、electron
、uTools
提供的api,并挂载到window
对象中,你其他的普通javascript代码就可以访问这些 api。
// 开发者可以暴露自定义API供后加载脚本使用
+ preload.js
当你在plugin.json
中配置了preload
属性,将载入对应的预加载脚本。
在传统的web开发中,所有的javascript脚本都在浏览器沙盒中运行,权限被严格限制,所能实现的功能非常有限。
通过preload.js
能够帮你突破沙盒限制,进入一个崭新的JavaScript世界。
preload.js
是一个特殊且单独的文件,不需要与其他业务代码编译在一起,在此文件中可以访问nodejs
、electron
、uTools
提供的api,并挂载到window
对象中,你其他的普通javascript代码就可以访问这些 api。
// 开发者可以暴露自定义API供后加载脚本使用
// preload.js 中使用nodejs
const { readFileSync } = require('fs')
diff --git a/src/docs/utools/template.html b/src/docs/utools/template.html
index c8899407..a9c59cc5 100644
--- a/src/docs/utools/template.html
+++ b/src/docs/utools/template.html
@@ -1,4 +1,4 @@
-
模板插件uTools 的插件开发给予了开发者最大的自由度,你可以随心所欲的设计页面结构、样式、交互,对于特别擅长前端开发的同学,这没有什么问题,但对于非前端开发者,要做出漂亮的、高质量的前端UI是一件困难的事情。
我们发现在uTools使用环境中,很多插件的场景都有其共性,所以我们抽象出一套体验统一、高质量、高性能的通用模版,如果你想开发的插件场景适合使用此模版,那么你只需提供数据并提供一些回调函数即可。
plugin.json 文件要使用uTools模版,首先第一步就是删除plugin.json
文件中的main
属性。
"main": "index.html"
preload.js 文件...
+ 模板插件
uTools 的插件开发给予了开发者最大的自由度,你可以随心所欲的设计页面结构、样式、交互,对于特别擅长前端开发的同学,这没有什么问题,但对于非前端开发者,要做出漂亮的、高质量的前端UI是一件困难的事情。
我们发现在uTools使用环境中,很多插件的场景都有其共性,所以我们抽象出一套体验统一、高质量、高性能的通用模版,如果你想开发的插件场景适合使用此模版,那么你只需提供数据并提供一些回调函数即可。
plugin.json 文件
要使用uTools模版,首先第一步就是删除plugin.json
文件中的main
属性。
"main": "index.html"
preload.js 文件
...
其他 js 代码
...
@@ -79,4 +79,4 @@
}
}
}
-
示例项目
无UI + 列表模式- Chrome 小助手 https://github.com/in3102/utools-chrome_helper
文档模式- MDN 文档(包含 JavaScript、Html、CSS、Web API/DOM、HTTP) https://github.com/in3102/utools-mdn-doc
- Python 文档 https://github.com/in3102/utools-python-doc
- Linux 命令文档 https://github.com/in3102/utools-linux-doc
- PHP 文档 https://github.com/in3102/utools-php-doc
UI展示
\ No newline at end of file
+
示例项目
无UI + 列表模式
- Chrome 小助手 https://github.com/in3102/utools-chrome_helper
文档模式
- MDN 文档(包含 JavaScript、Html、CSS、Web API/DOM、HTTP) https://github.com/in3102/utools-mdn-doc
- Python 文档 https://github.com/in3102/utools-python-doc
- Linux 命令文档 https://github.com/in3102/utools-linux-doc
- PHP 文档 https://github.com/in3102/utools-php-doc
UI展示

\ No newline at end of file
diff --git a/src/docs/utools/ubrowser.html b/src/docs/utools/ubrowser.html
index e3aff883..e4491729 100644
--- a/src/docs/utools/ubrowser.html
+++ b/src/docs/utools/ubrowser.html
@@ -1,10 +1,10 @@
-
ubrowser APIuTools browser 简称 ubrowser,是根据 uTools 的特性,量身打造的一个可编程浏览器。
这是令我们感到特别兴奋一组API,因为利用 ubrowser 你可以轻而易举连接一切互联网服务,而且可以与uTools完美结合。
ubrowser 拥有优雅的链式调用接口,你可以用口语化的数行代码,实现一系列匪夷所思的操作。例如:
1、自动化测试(自动打开页面、点击、判断,彻底解放测试人员。)
2、自动抢票
3、自动去除搜索引擎广告
4、自动将选中的文字、图片保存到各类云笔记
基本demo:
// 打开"必应" 并搜索 "uTools"
+ ubrowser API
uTools browser 简称 ubrowser,是根据 uTools 的特性,量身打造的一个可编程浏览器。
这是令我们感到特别兴奋一组API,因为利用 ubrowser 你可以轻而易举连接一切互联网服务,而且可以与uTools完美结合。
ubrowser 拥有优雅的链式调用接口,你可以用口语化的数行代码,实现一系列匪夷所思的操作。例如:
1、自动化测试(自动打开页面、点击、判断,彻底解放测试人员。)
2、自动抢票
3、自动去除搜索引擎广告
4、自动将选中的文字、图片保存到各类云笔记
基本demo:
// 打开"必应" 并搜索 "uTools"
utools.ubrowser.goto('https://cn.bing.com')
.value('#sb_form_q', 'uTools')
.click('#sb_form_go')
.run({ width: 1000, height: 600 })
-
useragent(userAgent)
userAgent
String
设置 User-Agent
goto(url, headers)
url
String
headers
Object (可选)
{ Referer: string, userAgent: string }
前往
goto(mdText, title)
mdText
String
Markdown 文本
title
String (可选)
窗口标题
Markdown 转 Html 并显示
viewport(width, height)
width
Integer height
Integer
页面大小
hide()
隐藏 ubrowser 窗口
show()
显示 ubrowser 窗口
css(cssCode)
cssCode
String
注入样式
press(key, ...modifier)
key
String
modifier
String (可选)
control | ctrl | shift | meta | alt | command | cmd
键盘按键
paste(text)
text
String (可选)
文本字符串 | 图片base64
执行粘贴
screenshot(arg, savePath)
arg
String | Object (可选)
String - 要截取的DOM元素
Object - 截图位置和大小 { x: Integer, y: Integer, width: Integer, height: Integer }
为空 截取整个窗口
savePath
String (可选)
图片保存路径, 也可以是完整PNG文件路径。默认 存储在临时目录
部分网页截图
pdf(options, savePath)
options
Object (可选)
{ marginsType: 0 | 1 | 2, pageSize: ('A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid') | { width: Integer, height: Integer } }
与 Electron API 一致
savePath
String (可选)
图片保存路径, 也可以是完整pdf文件路径。默认 存储在临时目录
保存页面为PDF
device(arg)
arg
String | Object
String - 'iPhone 11' | 'iPhone X' | 'iPad' | 'iPhone 6/7/8 Plus' | 'iPhone 6/7/8' | 'iPhone 5/SE' | 'HUAWEI Mate10' | 'HUAWEI Mate20' | 'HUAWEI Mate30' | 'HUAWEI Mate30 Pro'
Object - { size: { width: Integer, height: Integer }, useragent: String }
模拟设备
cookies(name)
name
String (可选)
为空获取全部cookie
- 获取cookie
setCookies(name, value)
name
String value
String
设置 cookie
setCookies(cookies)
cookies
Array
[{ name: String, value: String }]
设置 cookie
removeCookies(name)
name
String
删除 cookie
clearCookies(url)
url
String (可选)
在执行"goto"前执行 url参数必需
清空 cookie
devTools(mode)
mode
String (可选)
'right' | 'bottom' | 'undocked' | 'detach' 默认为 'detach'
打开开发者工具
evaluate(func, ...params)
func
Function
在网页内执行的函数
param
Any (可选)
传递给 func 的参数
执行JS函数 如果有返回值将加入到返回结果中
示例.evaluate((param1, param2) => {
+
useragent(userAgent)
userAgent
String
设置 User-Agent
goto(url, headers)
url
String
headers
Object (可选)
{ Referer: string, userAgent: string }
前往
goto(mdText, title)
mdText
String
Markdown 文本
title
String (可选)
窗口标题
Markdown 转 Html 并显示
viewport(width, height)
width
Integer height
Integer
页面大小
hide()
隐藏 ubrowser 窗口
show()
显示 ubrowser 窗口
css(cssCode)
cssCode
String
注入样式
press(key, ...modifier)
key
String
modifier
String (可选)
control | ctrl | shift | meta | alt | command | cmd
键盘按键
paste(text)
text
String (可选)
文本字符串 | 图片base64
执行粘贴
screenshot(arg, savePath)
arg
String | Object (可选)
String - 要截取的DOM元素
Object - 截图位置和大小 { x: Integer, y: Integer, width: Integer, height: Integer }
为空 截取整个窗口
savePath
String (可选)
图片保存路径, 也可以是完整PNG文件路径。默认 存储在临时目录
部分网页截图
pdf(options, savePath)
options
Object (可选)
{ marginsType: 0 | 1 | 2, pageSize: ('A3' | 'A4' | 'A5' | 'Legal' | 'Letter' | 'Tabloid') | { width: Integer, height: Integer } }
与 Electron API 一致
savePath
String (可选)
图片保存路径, 也可以是完整pdf文件路径。默认 存储在临时目录
保存页面为PDF
device(arg)
arg
String | Object
String - 'iPhone 11' | 'iPhone X' | 'iPad' | 'iPhone 6/7/8 Plus' | 'iPhone 6/7/8' | 'iPhone 5/SE' | 'HUAWEI Mate10' | 'HUAWEI Mate20' | 'HUAWEI Mate30' | 'HUAWEI Mate30 Pro'
Object - { size: { width: Integer, height: Integer }, useragent: String }
模拟设备
cookies(name)
name
String (可选)
为空获取全部cookie
+ 获取cookie
setCookies(name, value)
name
String value
String
设置 cookie
setCookies(cookies)
cookies
Array
[{ name: String, value: String }]
设置 cookie
removeCookies(name)
name
String
删除 cookie
clearCookies(url)
url
String (可选)
在执行"goto"前执行 url参数必需
清空 cookie
devTools(mode)
mode
String (可选)
'right' | 'bottom' | 'undocked' | 'detach' 默认为 'detach'
打开开发者工具
evaluate(func, ...params)
func
Function
在网页内执行的函数
param
Any (可选)
传递给 func 的参数
执行JS函数 如果有返回值将加入到返回结果中
示例
.evaluate((param1, param2) => {
return document.querySelector('div').innerText
}, 'param1', 'param2')
-
wait(ms)
ms
Integer
等待的毫秒数
等待
wait(selector, timeout)
selector
String
DOM元素
timeout
Integer (可选)
超时 默认 10000 ms
等待DOM元素出现
wait(func, timeout,...params)
func
Function
在网页内执行的函数,返回 true 结束等待
timeout
Integer (可选)
超时 默认 10000 ms
param
Any (可选)
传递给 func 的参数
等待JS函数执行返回 true
when(selector)
selector
String
DOM元素
当元素存在时执行直到碰到 end() 方法
when(func, ...params)
func
Function
在网页内执行的函数,返回 true 执行
param
Any (可选)
传递给 func 的参数
当JS函数执行返回 true 时执行, 直到碰到 end() 方法
end()
与 when 配套使用
click(selector)
selector
String
单击元素
mousedown(selector)
selector
String
元素触发按下鼠标左键
mouseup(selector)
selector
String
元素触发释放鼠标左键
file(selector, payload)
selector
String
input type='file' 元素
payload
String | Array | Buffer
文件路径 或 路径集合 或 文件Buffer
为网页中的file input 赋值
value(selector, val)
selector
String
input textarea select 元素
val
String
为网页中的input textarea select 元素赋值
check(selector, checked)
selector
String
checkbox radio 元素
checked
Boolean
是否选中
checkbox radio 元素选中或取消选中
focus(selector)
selector
String
元素获得焦点
scroll(selector)
selector
String
滚动到元素位置
scroll(y)
y
Integer
Y轴滚动
scroll(x, y)
x
Integer y
Integer
X轴和Y轴滚动
run(ubrowserId)
ubrowserId
Integer
utools.getIdleUBrowsers() 中获得
返回
Promise
运行在闲置的 ubrowser 上
run(options)
options
Object
Object
- show Boolean (可选) 是否显示
- width Integer (可选) 宽度 默认为800
- height Integer (可选) 高度 默认为600
- x Integer (可选) 位置X
- y Integer (可选) 位置Y
- center Boolean (可选) 窗口在屏幕居中
- minWidth Integer (可选) 窗口的最小宽度, 默认值为 0
- minHeight Integer (可选) 窗口的最小高度. 默认值为 0
- maxWidth Integer (可选) 窗口的最大宽度, 默认无限制
- maxHeight Integer (可选) 窗口的最大高度, 默认无限制
- resizable Boolean (可选) 窗口是否可以改变尺寸, 默认值为true
- movable Boolean (可选) 窗口是否可以移动. 在 Linux 中无效。 默认值为 true
- minimizable Boolean (可选) 窗口是否可以最小化. 在 Linux 中无效。 默认值为 true
- maximizable Boolean (可选) 窗口是否可以最大化动. 在 Linux 中无效。 默认值为 true
- alwaysOnTop Boolean (可选) 窗口是否永远置顶。 默认值为false
- fullscreen Boolean (可选) 窗口是否全屏. 默认值为false
- fullscreenable Boolean (可选) 窗口是否可以进入全屏状态,默认值为 true
- enableLargerThanScreen Boolean (可选) 是否允许改变窗口的大小使之大于屏幕的尺寸. 仅适用于 macOS,因为其它操作系统默认允许 大于屏幕的窗口。 默认值为 false
- opacity Number (可选) 设置窗口初始的不透明度, 介于 0.0 (完全透明) 和 1.0 (完全不透明) 之间。仅支持 Windows 和 macOS 。
返回
Promise
启动一个 ubrowser 运行
\ No newline at end of file
+
wait(ms)
ms
Integer
等待的毫秒数
等待
wait(selector, timeout)
selector
String
DOM元素
timeout
Integer (可选)
超时 默认 10000 ms
等待DOM元素出现
wait(func, timeout,...params)
func
Function
在网页内执行的函数,返回 true 结束等待
timeout
Integer (可选)
超时 默认 10000 ms
param
Any (可选)
传递给 func 的参数
等待JS函数执行返回 true
when(selector)
selector
String
DOM元素
当元素存在时执行直到碰到 end() 方法
when(func, ...params)
func
Function
在网页内执行的函数,返回 true 执行
param
Any (可选)
传递给 func 的参数
当JS函数执行返回 true 时执行, 直到碰到 end() 方法
end()
与 when 配套使用
click(selector)
selector
String
单击元素
mousedown(selector)
selector
String
元素触发按下鼠标左键
mouseup(selector)
selector
String
元素触发释放鼠标左键
file(selector, payload)
selector
String
input type='file' 元素
payload
String | Array | Buffer
文件路径 或 路径集合 或 文件Buffer
为网页中的file input 赋值
value(selector, val)
selector
String
input textarea select 元素
val
String
为网页中的input textarea select 元素赋值
check(selector, checked)
selector
String
checkbox radio 元素
checked
Boolean
是否选中
checkbox radio 元素选中或取消选中
focus(selector)
selector
String
元素获得焦点
scroll(selector)
selector
String
滚动到元素位置
scroll(y)
y
Integer
Y轴滚动
scroll(x, y)
x
Integer y
Integer
X轴和Y轴滚动
run(ubrowserId)
ubrowserId
Integer
utools.getIdleUBrowsers() 中获得
返回
Promise
运行在闲置的 ubrowser 上
run(options)
options
Object
Object
- show Boolean (可选) 是否显示
- width Integer (可选) 宽度 默认为800
- height Integer (可选) 高度 默认为600
- x Integer (可选) 位置X
- y Integer (可选) 位置Y
- center Boolean (可选) 窗口在屏幕居中
- minWidth Integer (可选) 窗口的最小宽度, 默认值为 0
- minHeight Integer (可选) 窗口的最小高度. 默认值为 0
- maxWidth Integer (可选) 窗口的最大宽度, 默认无限制
- maxHeight Integer (可选) 窗口的最大高度, 默认无限制
- resizable Boolean (可选) 窗口是否可以改变尺寸, 默认值为true
- movable Boolean (可选) 窗口是否可以移动. 在 Linux 中无效。 默认值为 true
- minimizable Boolean (可选) 窗口是否可以最小化. 在 Linux 中无效。 默认值为 true
- maximizable Boolean (可选) 窗口是否可以最大化动. 在 Linux 中无效。 默认值为 true
- alwaysOnTop Boolean (可选) 窗口是否永远置顶。 默认值为false
- fullscreen Boolean (可选) 窗口是否全屏. 默认值为false
- fullscreenable Boolean (可选) 窗口是否可以进入全屏状态,默认值为 true
- enableLargerThanScreen Boolean (可选) 是否允许改变窗口的大小使之大于屏幕的尺寸. 仅适用于 macOS,因为其它操作系统默认允许 大于屏幕的窗口。 默认值为 false
- opacity Number (可选) 设置窗口初始的不透明度, 介于 0.0 (完全透明) 和 1.0 (完全不透明) 之间。仅支持 Windows 和 macOS 。
返回
Promise
启动一个 ubrowser 运行
\ No newline at end of file