mg.ui

mg.ui 对象包含了用来操作用户界面并与用户界面进行信息交流的接口。

show

  • Type: show(): void

用于使 UI 界面可见。当调用 mg.showUI(__html__) 创建用户界面后,可以使用 mg.ui.show()mg.ui.hide() 方法来改变 UI 界面的可见性。

hide

  • Type: hide(): void

mg.ui.show() 方法对立,hide() 方法用来是 UI 界面不可见,相当于 display: none。因此,用于实现 UI 界面的代码仍然可以继续运行。

resize

  • Type: (width: number, height: number): void

用来设置社区插件 UI 的尺寸

close

  • Type: close(): void

销毁 UI 界面。调用此方法会导致 <iframe> 被销毁,UI 界面无法再接收消息,<iframe> 内的代码将不再运行。

moveTo

  • Type: moveTo(x: number, y: number): void

用于设置插件ui视窗的定位,坐标原点为画布页面视窗的左上角,单位为像素值。

viewport

  • Type: UIViewport

可获取当前插件视窗的属性,包括定位和宽高等,具体可查看类型UIViewport

postMessage

  • Type: postMessage(message: any, origin?: string): void

ui.postMessage 函数用于向用户界面(<iframe>)发送消息。第一个参数用于指定消息的内容,几乎可以是任何数据,只要该数据是可序列化的(serializable)对象。该限制与浏览器的 postMessage API 相同,可以参考:

  1. 浏览器的 postMessage API
  2. 结构化克隆算法

origin 参数是可选的,默认值为字符串 '*'。只有当 <iframe> 内的文档与 origin 匹配时才会发送消息。

onmessage

  • Type: ((pluginMessage: any, origin: string) => void) | undefined

可以通过设置 mg.ui.onmessage 属性来监听由 UI 界面发送过来的消息事件。例如:

mg.ui.onmessage = (message, origin) => {
  // ...
}

事件处理函数接收两个参数:

  • message: any:由 UI 界面发送的消息。
  • origin: string:发送消息的文档的源。