桌面UI交互
使用联机脚本进行桌面助手交互
在桌面也采用 desktop 来控制界面.
desktop 模块提供了一些界面与系统交互的工具函数。
1 冒泡提示 message
冒泡提示一条消息。示例:
desktop.message(title='Test', body='Hello World', type='info')
其中:
- type: 消息类型,用于改变冒泡消息上的图标。可选值有:
- none 没有图标。这是默认值。
- info 显示“信息图标”
- warn 显示“警告”图标。
- error 显示“错误”图标。
2 弹消息框 msgbox
result = desktop.msgbox(title, body, buttons=None)
输入:
- title
- body
- buttons
返回用户选择的按钮文字
3 弹出 webview 窗口 window
Webview 窗口可以认为是一个单独的浏览器窗口,可以用于加载指定 URL,有如下的限制:
- 不能使用右键菜单(前进 / 后退 / 调试等功能);
- 不能通过 Javascript 或链接打开新窗口;
- 与普通浏览器不同,除页面外的 UI(地址栏 / 工具栏 / 菜单栏)不会显示;
示例:
desktop.window( url='https://easydo.cn', # 通过 URL 指定要加载的页面 body=None, # 也可以不指定 URL,而直接将 body 元素的内容传递进来,会套用默认模板 title=None, # 指定窗口标题 size=(800, 800), # 指定窗口大小 position=None, # 指定窗口的位置(窗口左上角的坐标) resizable=True, # 是否允许用户调整窗口大小 maxbutton=True, # 是否允许最大化窗口 minbutton=True # 是否允许最小化窗口 )
其中:
必须指定 url 或者 body
其余参数用于指定弹出窗口的属性
默认模板可以使用 Bootstrap,Font-Awesome,jQuery 和 layui
加载后的网页中有一个额外的 Javascript 对象 window.native ,包含以下方法
- native.closeWindow() 关闭窗口
- native.hideWindow() 隐藏窗口
- native.showWindow() 显示窗口
- native.resizeWindow(w, h) 调整窗口大小(注意: w 和 h 必须是整数)
- native.copyToClipboard(text) 复制文本到剪贴板
- native.showInFolder(path) 在文件管理器中打开指定项所在文件夹
- native.openWithBrowser(url) 使用用户的默认浏览器打开指定的 URL
加载后的网页还有一个 EDO 对象,用来访问桌面助手的一些配置信息,目前有以下属性
- BaseURL 桌面助手的访问地址
- Version 桌面助手的主版本号
- BuildNumber 桌面助手的次版本号
4 打开地址
4.1 打开文件或文件夹 open_path
使用默认打开方式打开文件,或使用文件管理器打开文件夹。示例:
desktop.open_path(os.path.expanduser('~')) # 打开用户的主目录
4.2 在文件夹中显示 show_in_folder
在文件管理器中打开指定项所在文件夹,并选中指定项。示例:
desktop.show_in_folder( os.path.join(os.path.expanduser('~'), 'Documents') )
上面的示例将会打开用户的主目录,并选中其中的 Documents 文件夹。
注意:
- 当前只支持在 Windows 平台选中指定项,在其他平台只会打开所在文件夹。
4.3 使用默认浏览器打开 open_url
使用用户的默认浏览器打开指定的 URL:
desktop.open_url('https://easydo.cn')
5 显示任务详情窗口 show_task_window
展示 worker_db 的信息:
desktop.show_task_window(task_id)
参数:
- task_id: 任务ID
该窗口会展示 worker_db 的一组有特殊含义的字段,脚本可以写入供展示:
- reason: 错误原因
- oc_api_url: 来源站点的oc地址
- account: 来源站点的账户
- instance: 来源站点的名字
6 退出 quit
desktop.quit()
7 能否退出 ready_to_quit
result = desktop.ready_to_quit()
8 控制台相关 console
8.1 设置桌面助手控制台当前展示的tab set_active_tab
desktop.console.set_active_tab('xxx')
8.2 显示控制台 show
desktop.console.show()
8.3 刷新tab页 refresh_tab
desktop.console.refresh_tab('xxx')