大道至简,新一代企业应用无栈开发

平台之上,一种语言,可视化、脚本化、全端一体化开发

桌面UI交互

使用联机脚本进行桌面助手交互

docutils document without title

在桌面也采用 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) 调整窗口大小(注意: wh 必须是整数)
    • 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')