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 API

在插件初始化完成时,uTools会自动在你的window对象上挂载utools对象,它将提供一些特有的api,使你的插件能够更好的与uTools主窗口沟通,并获得一些有意义的底层能力。

事件

你可以根据需要事先定义好一些回调函数,uTools会在事件产生时主动调用它们。

onPluginReady(callback)

当插件装载成功,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的搜索条主输入框将会变成子输入框,子输入框可以为插件所使用。

main.png

主输入框

main.png

子输入框

示例

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的搜索条主输入框将会变成子输入框,子输入框可以为插件所使用。

main.png

主输入框

main.png

子输入框

示例

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)

弹出文件选择框

示例

utools.showOpenDialog({ 
+  

showOpenDialog(options)

弹出文件选择框

示例

utools.showOpenDialog({ 
     filters: [{ 'name': 'plugin.json', extensions: ['json'] }], 
     properties: ['openFile'] 
   })
-  

showSaveDialog(options)

弹出文件保存框

示例

utools.showSaveDialog({ 
+  

showSaveDialog(options)

弹出文件保存框

示例

utools.showSaveDialog({ 
     title: '保存位置', 
     defaultPath: utools.getPath('downloads')
     buttonLabel: '保存'
   })
-  

showMessageBox(options)

弹出消息框

示例

utools.showMessageBox({
+  

showMessageBox(options)

弹出消息框

示例

utools.showMessageBox({
     type: 'question',
     buttons: ['取消', '关机'],
     title: '关机确认',
     message: '电脑确定要关机?',
     defaultId: 1
   })
-  

findInPage(text, options)

插件页面中查找内容

示例

utools.findInPage('utools')
-  

stopFindInPage(action)

停止插件页面中查找

示例

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)

插件页面中查找内容

示例

utools.findInPage('utools')
+  

stopFindInPage(action)

停止插件页面中查找

示例

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)

setFeature(feature)

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

utools.setFeature({
     "code": "hosts",
     "explain": "hosts切换",
@@ -86,17 +86,17 @@
     // "platform": ["win32", "darwin", "linux"]
     "cmds": ["hosts"]
   })
-  

removeFeature(code)

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

utools.removeFeature('code')
-  

工具

屏幕取色 & 屏幕截图

screenColorPick(callback)

屏幕取色

示例

utools.screenColorPick(({hex, rgb})=>{
+  

removeFeature(code)

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

utools.removeFeature('code')
+  

工具

屏幕取色 & 屏幕截图

screenColorPick(callback)

屏幕取色

示例

utools.screenColorPick(({hex, rgb})=>{
     console.log(hex) // #FFFFFF
     console.log(rgb) // RGB(0, 0, 0)
   })
-  

screenCapture(callback)

屏幕截图

示例

utools.screenCapture(base64Str => {
+  

screenCapture(callback)

屏幕截图

示例

utools.screenCapture(base64Str => {
     utools.redirect('识别图片中文字', { type: 'img', data: base64Str })
   })
-  

模拟

模拟敲击键盘 和 鼠标点击

simulateKeyboardTap(key, ...modifier)

模拟键盘按键

示例

// 模拟键盘敲击 Enter
+  

模拟

模拟敲击键盘 和 鼠标点击

simulateKeyboardTap(key, ...modifier)

模拟键盘按键

示例

// 模拟键盘敲击 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)

模拟鼠标移动

示例

utools.simulateMouseMove(100100)
-  

simulateMouseClick(x, y)

模拟鼠标左键单击

示例

utools.simulateMouseClick(100100)
-  

simulateMouseRightClick(x, y)

模拟鼠标右键单击

示例

utools.simulateMouseRightClick(100100)
-  

simulateMouseDoubleClick(x, y)

模拟鼠标双击

示例

utools.simulateMouseDoubleClick(100100)
-  

屏幕

getCursorScreenPoint()

获取鼠标绝对位置

示例

const point = utools.getCursorScreenPoint()
+  

simulateMouseMove(x, y)

模拟鼠标移动

示例

utools.simulateMouseMove(100100)
+  

simulateMouseClick(x, y)

模拟鼠标左键单击

示例

utools.simulateMouseClick(100100)
+  

simulateMouseRightClick(x, y)

模拟鼠标右键单击

示例

utools.simulateMouseRightClick(100100)
+  

simulateMouseDoubleClick(x, y)

模拟鼠标双击

示例

utools.simulateMouseDoubleClick(100100)
+  

屏幕

getCursorScreenPoint()

获取鼠标绝对位置

示例

const point = utools.getCursorScreenPoint()
   console.log(point.x, point.y)
-  

getPrimaryDisplay()

获取主显示器

示例

const display = utools.getPrimaryDisplay()
+  

getPrimaryDisplay()

获取主显示器

示例

const display = utools.getPrimaryDisplay()
   console.log(display)
-  

getAllDisplays()

获取所有显示器

示例

const displays = utools.getAllDisplays()
+  

getAllDisplays()

获取所有显示器

示例

const displays = utools.getAllDisplays()
   console.log(displays)
-  

getDisplayNearestPoint(point)

获取位置所在的显示器

示例

const display = utools.getDisplayNearestPoint({x: 100, y: 100 })
+  

getDisplayNearestPoint(point)

获取位置所在的显示器

示例

const display = utools.getDisplayNearestPoint({x: 100, y: 100 })
   console.log(display)
-  

getDisplayMatching(rect)

获取矩形所在的显示器

示例

const display = utools.getDisplayMatching({x: 100, y: 100, width: 200, height: 200 })
+  

getDisplayMatching(rect)

获取矩形所在的显示器

示例

const display = utools.getDisplayMatching({x: 100, y: 100, width: 200, height: 200 })
   console.log(display)
-  

复制

copyFile(file)

复制文件到系统剪贴板

示例

// 复制单个文件
+  

复制

copyFile(file)

复制文件到系统剪贴板

示例

// 复制单个文件
   utools.copyFile('/path/to/file')
   // 复制多个文件
   utools.copyFile(['/path/to/file1', '/path/to/file2'])
-  

copyImage(img)

复制图片到系统剪贴板

示例

// 路径
+  

copyImage(img)

复制图片到系统剪贴板

示例

// 路径
   utools.copyImage('/path/to/img.png')
   // base64
   utools.copyImage('data:image/png;base64,xxxxxxxxx')
-  

copyText(text)

复制文本

示例

utools.copyText('Hi, uTools')
-  

系统

showNotification(body)

显示系统通知

示例

utools.showNotification('Hi, uTools')
-  

shellOpenItem(fullPath)

系统默认方式打开给定的文件

示例

utools.shellOpenItem('/path/to/file')
-  

shellShowItemInFolder(fullPath)

系统文件管理器中显示给定的文件

示例

utools.shellShowItemInFolder('/path/to/file')
-  

shellOpenExternal(url)

系统默认的协议打开URL

示例

// 浏览器打开
+  

copyText(text)

复制文本

示例

utools.copyText('Hi, uTools')
+  

系统

showNotification(body)

显示系统通知

示例

utools.showNotification('Hi, uTools')
+  

shellOpenItem(fullPath)

系统默认方式打开给定的文件

示例

utools.shellOpenItem('/path/to/file')
+  

shellShowItemInFolder(fullPath)

系统文件管理器中显示给定的文件

示例

utools.shellShowItemInFolder('/path/to/file')
+  

shellOpenExternal(url)

系统默认的协议打开URL

示例

// 浏览器打开
   utools.shellOpenExternal('https://u.tools')
-  

shellBeep()

播放哔哔声

示例

utools.shellBeep()
-  

getLocalId()

获取本地ID

示例

console.log(utools.getLocalId())
-  

getPath(name)

  • 返回 String
  • 获取路径

    示例

    // 获取下载路径
       console.log(utools.getPath('downloads'))
    -  

    getCurrentFolderPath()

    获取当前文件管理器路径(linux 不支持),呼出uTools前的活动窗口为资源管理器才能获取

    示例

    console.log(utools.getCurrentFolderPath())
    -  

    getCurrentBrowserUrl()

    获取当前浏览器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()

    获取当前文件管理器路径(linux 不支持),呼出uTools前的活动窗口为资源管理器才能获取

    示例

    console.log(utools.getCurrentFolderPath())
    +  

    getCurrentBrowserUrl()

    获取当前浏览器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)

    执行该方法将会创建或更新数据库文档

    // 创建请求
    +  

    本地数据库

    传统的B/S结构的程序中,除了前端的开发之外,可能还需要有一台服务器、一门后端语言和一个数据库来处理和存储用户数据,这会带来很大的维护成本和可用性的问题。

    uTools的很多插件就像是一个微型的应用程序,总是会碰到一些数据需要持久化存储的场景,为了解决这个问题,我们整合并提供了一个nosql数据库系统,它可以很方便的使用,如果开启同步的话可在多个设备之间实现秒级同步。

    utools.db.put(doc)

    执行该方法将会创建或更新数据库文档

    // 创建请求
       utools.db.put({
         _id: "demo",
         data: "demo"
    @@ -162,11 +162,11 @@
         data: "demo",
         _rev: "1-05c9b92e6f24287dc1f4ec79d9a34fa8"
       })
    -  

    _id代表这个文档在数据库中唯一值,如果值不存在,则会创建一个新的文档,如果值已经存在,则会进行更新。你可能已经注意到,返回对象中包含一个rev属性,这是代表此文档的版本,每次对文档进行更新时,都要带上最新的版本号,否则更新将失败,版本化的意义在于解决同步时数据冲突。

    另外需要注意,每次更新时都要传入完整的文档数据,无法对单个字段进行更新。

    utools.db.get(id)

    执行该方法将会根据文档ID获取数据

    utools.db.get("demo")
    +  

    _id代表这个文档在数据库中唯一值,如果值不存在,则会创建一个新的文档,如果值已经存在,则会进行更新。你可能已经注意到,返回对象中包含一个rev属性,这是代表此文档的版本,每次对文档进行更新时,都要带上最新的版本号,否则更新将失败,版本化的意义在于解决同步时数据冲突。

    另外需要注意,每次更新时都要传入完整的文档数据,无法对单个字段进行更新。

    utools.db.get(id)

    执行该方法将会根据文档ID获取数据

    utools.db.get("demo")
       // 返回 {_id: "demo", _rev: "3-9836c5c68af5aef618e17d615882942a", data: "demo"}
    -  

    utools.db.remove(doc)

    执行该方法将会删除数据库文档,可以传入文档对象或文档id进行操作。

    utools.db.remove("demo")
    +  

    utools.db.remove(doc)

    执行该方法将会删除数据库文档,可以传入文档对象或文档id进行操作。

    utools.db.remove("demo")
       // 返回 {id: "demo", ok: true, rev: "2-effe5dbc23dffc180d8411b23f3108fb"}
    -  

    utools.db.bulkDocs(docs)

    执行该方法将会批量更新数据库文档,传入需要更改的文档对象合并成数组进行批量更新。

    utools.db.bulkDocs([{
    +  

    utools.db.bulkDocs(docs)

    执行该方法将会批量更新数据库文档,传入需要更改的文档对象合并成数组进行批量更新。

    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)

    执行该方法将会获取所有数据库文档,如果传入字符串,则会返回以字符串开头的文档,也可以传入指定ID的数组,不传入则为获取所有文档。

    // 获取所有文档
    +  

    utools.db.allDocs(key)

    执行该方法将会获取所有数据库文档,如果传入字符串,则会返回以字符串开头的文档,也可以传入指定ID的数组,不传入则为获取所有文档。

    // 获取所有文档
       utools.db.allDocs()
       
       // 传入字符串,则返回id以 demo 开头的文档
    @@ -208,9 +208,9 @@
         _id: "demo2", _rev: "1-f0399b42cc6123a9cc8503632ba7b3a7", data: "demo"
       }]
       */
    -  

    ubrowser

    可编程浏览器

    getIdleUBrowsers()

    获取闲置的 ubrowser

    示例

    console.log(utools.getIdleUBrowsers())
    +  

    ubrowser

    可编程浏览器

    getIdleUBrowsers()

    获取闲置的 ubrowser

    示例

    console.log(utools.getIdleUBrowsers())
       // [{ id: number, title: string, url: string }]
    -  

    setUBrowserProxy(config)

    设置 ubrowser 代理

    示例

    utools.setUBrowserProxy({
    +  

    setUBrowserProxy(config)

    设置 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 是一个特殊且单独的文件,不需要与其他业务代码编译在一起,在此文件中可以访问nodejselectronuTools提供的api,并挂载到window对象中,你其他的普通javascript代码就可以访问这些 api。

     // 开发者可以暴露自定义API供后加载脚本使用
    +

    preload.js

    当你在plugin.json中配置了preload属性,将载入对应的预加载脚本。

    在传统的web开发中,所有的javascript脚本都在浏览器沙盒中运行,权限被严格限制,所能实现的功能非常有限。

    通过preload.js能够帮你突破沙盒限制,进入一个崭新的JavaScript世界。

    preload.js 是一个特殊且单独的文件,不需要与其他业务代码编译在一起,在此文件中可以访问nodejselectronuTools提供的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展示

    docs.png

    \ 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展示

    docs.png

    \ 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 API

    uTools 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