2021年4月15日

draw嵌入模式

如果使用embed = 1 URL参数,则客户端以嵌入模式运行,并且 在加载页面时,页面将向打开器或父级发送“就绪”消息。仅https://embed.diagrams.net支持此模式。收到就绪消息后,图表数据可以XML或压缩XML的形式发送。如果分别选择“应用”或“取消”,它将返回XML或空字符串。以下URL参数在嵌入模式下可用:

  • spin = 1:在等待以嵌入模式加载图数据时显示“ 正在加载…”微调器。
  • Modify = 0:选择“保存”后,禁止在嵌入模式下更新修改后的状态,并在进行更改后启用状态消息的更新。如果使用0,则更改后状态栏将清除。否则,此值将用作资源密钥。您可以在加载消息中指定此设置,而不是使用此URL参数。
  • keepmodified = 1: 如果修改指定资源键,则用于在选择保存后保留修改后的状态。
  • library = 1:指定是否应在嵌入模式下启用库。默认设置为禁用(0)。
  • noSaveBtn = 1:显示“保存并退出”按钮,而不是“保存”按钮。您可以在加载消息中指定此设置,而不是使用此URL参数。如果使用此选项,则将忽略saveAndExit URL参数。
  • saveAndExit = 1:显示另一个“保存并退出”按钮。您可以在加载消息中指定此设置,而不是使用此URL参数。如果使用noSaveBtn = 1,则可以通过saveAndExit = 0禁用它。
  • noExitBtn = 1:隐藏 退出按钮。您可以在加载消息中指定此设置,而不是使用此URL参数。
  • 注意:要在嵌入模式下隐藏所有按钮,请使用saveAndExit = 0&noSaveBtn = 1&noExitBtn = 1。
  • ready = message:指定要以嵌入或客户端模式发送的消息。默认为‘ready’。如果使用JSON协议,则将其忽略。
  • returnbounds = 1:以嵌入和客户端模式返回具有图范围的JSON结构。收到图XML后立即分派此消息。
  • proto = json:使用JSON在嵌入式和客户端模式下传递消息。
  • configure = 1:发送配置事件并等待配置操作

配置

如果使用configure = 1 URL参数,则客户端在创建主应用程序并发送 init事件之前,发送{event:’configure’} 并等待{action:’configure’,config:obj} 。所述OBJ是在配置中指定,例如配置:{defaultFonts:[“幽默三世”]} 。

JSON协议说明

客户端准备就绪后,它将发送{event:’init’ }并期望{action:’load’,xml:’…’}。指定可选的自动保存:在此消息中为1以启用自动保存功能。

您可以使用与上面定义的修改的URL参数相同的语义来设置可选的修改标志。可以使用与上面定义的saveAndExit URL参数相同的语义来指定可选的saveAndExit标志。URL参数优先于以这种方式设置的标志。指定可选的标题字符串以在菜单栏中(右侧)显示标题。

如果启用了自动保存,则编辑器将在{event:’autosave’…}中发送当前XML 。

显示加载消息中的XML,并返回一个{event:’load’…},其中包含有关图表大小的一些数据。该消息中的XML可以是该图的任何受支持的XML表示形式,包括带有嵌入式XML的SVG和PNG文件。仍然可以使用旧的参数名称xmlpng。

或者,您可以在加载消息中添加一个描述符对象,以导入特定的数据格式,例如

  • {action:’load’,描述符:  {format:’csv’,data:… }}其中data是CSV导入对话框中的字符串。
  • 注意:对于XML,可以使用所有受支持的文件格式,包括PNG + XML,使用UTF8编码的SVG数据URI的数据部分,或使用base64编码的完整SVG或PNG数据URI。对于所有.vsd *文件,数据URI带有
  • data:application / vnd.visio;必须使用base64前缀。Lucidchart和Gliffy文件表示为JSON字符串。
  • 当您选择保存,同样的消息作为负载发送事件,但有一个附加的事件: “保存” 和XML:“…”包含图表的XML。当您选择保存并退出,消息中包含一个额外的退出:真。如果选择Exit,则会发送一个{event:’exit’,修改为:boolean}。当您在编辑器界面中单击链接时,应用程序尝试打开具有给定目标(默认值为_blank)的链接,并发送一个{event:’openLink’,href:String,target:String}事件。
  • {action:’merge’,xml:’…’}可以随时发送,以将给定XML的内容合并到当前文件中,{event:’merge’,error:’…’, message:…}以及传入的消息,并返回可选错误。如果合并成功,则错误为null。
  • 可以随时发送{action:’dialog’,标题:’…’,消息:’…’,按钮:’…’,修改:bool},以在编辑器窗口中显示对话框。要翻译对话框,请改用titleKey,messageKey和buttonKey。
  • {action:’prompt’,title:’…’,ok:’…’,defaultValue:’…’} 可以随时发送,以在编辑器窗口中显示提示。要翻译标题,请改用titleKey和okKey。当行被选中,一个{事件:“提示”,值:“…”,留言:…}返回与传入的消息,在对话框中输入的值。当取消选择,一个{事件:“提示-取消”,消息:…}与传入的消息被返回。
  • 可以随时发送{action:’template’}以显示模板对话框。通常发送该消息而不是加载消息以创建初始图。当创建被选中,图表从所选模板创建的。如果选择取消,则会发送退出消息。指定一个可选的callback:true参数,以将当前模板和文件名传递回调用方进行验证。回调的消息为{event:’template’,xml:’…’,blank:’…’,name:…,message:…}其中,如果存在空白图表,则blank为true在模板对话框和消息中选择的是传入消息。
  • {action:’layout’,layouts:…}使用与Arrange Layout Apply相同的格式来运行布局数组。
  • {action:’draft’,xml:’…’,name:’…’,editKey:’…’,throwkey:’…’,ignore:bool}可以发送以显示草稿对话。如果编辑或丢弃被选择,一个{事件:…“草稿”,错误/结果::“…”,消息} 与传入消息和的结果‘编辑’或‘取消’被返回。如果显示对话框时出现错误,则返回错误而不是消息中的结果。如果ignore为true,则使用ignore选项,其返回结果:’ignore’。
  • 可以随时发送{action:’status’,消息:’…’,修改为:bool},以在状态栏中显示消息。可选的Modifyed 标志用于更新修改后的状态。可以使用messageKey代替消息来指定消息的资源密钥,而不是消息。
  • {action:’spinner’,message:’…’,show:bool,enabled:bool}可以随时发送以显示带有消息的微调器,或者如果show设置为false,则隐藏当前的微调器。可以使用messageKey 代替消息来指定消息的资源密钥,而不是消息。
  • {action:’export’,format:’…’}可以随时发送以返回{event:’export’,format:’…’,message:…,data:’… ‘,xml:’…’},其中包含用于给定格式的传入消息,数据和XML。支持的格式包括html(以前的嵌入格式),html2(新的嵌入格式),svg(默认),xmlsvg(具有嵌入式XML的SVG),png和xmlpng(具有嵌入式XML的PNG)。导出 事件中的data参数包含给定导出格式的有效数据URI。当前,使用的是base64编码,但将来可能会更改。
    • 对于png和xmlpng,请使用附加的spin(或spinKey)参数来启用微调器,并在生成图像时指定一条消息(或messageKey)。
    • 使用可选的xml 参数为所有受支持的格式指定要导出的图的XML。
    • 对于svg和xmlsvg格式,请使用可选的embedImages:false来禁用SVG输出中的嵌入式图像。

如果收到任何未知消息,系统将以{错误:’unknownMessage’,数据:…}进行响应,其中data是传入消息的字符串表示形式。