iframe集成报告API

<< Click to Display Table of Contents >>

当前位置:  部署与集成 

iframe集成报告API

复制链接

1.概述

外部系统通过iframe集成了永洪的页面,并内外通过postMessage进行通信和交互;可以实现打开报告,刷新,关闭的动作。可以实现较为复杂的集成场景。

iframe url 为查看报告复制的报告链接;例如:http://ip:port/bi/Viewer?proc=1&action=viewer ,默认不会打开任何报告页面,通过外部逻辑驱动对报告的打开。或者指定报告路径:http://ip:port/bi/Viewer?proc=1&action=viewer&db=test.db,默认打开一个报告。

打开、刷新、关闭都是通过postmessage发送消息给http://ip:port/bi/Viewer?proc=1&action=viewer外部控制它做具体的动作,获取打开报告的id为一个监听事件,获取报告id的目的是为打开报告,并在刷新、关闭时使用。

2.获取打开报告的id

通过监听iframe message事件,获取打开报告的id。

请求示例

_iframe.contentWindow.addEventListener("message", (event) => {

  const data = event.data ? JSON.parse(event.data) : null;

 

  if(data && data.action == "OpenedDBID") {

     console.log('Opened DB id: ', data.id);

  }

});

注意:

message 事件需要在打开报告执行前监听。

3.打开报告

允许用户通过此接口打开报告。

请求参数

参数

类型

约束

action

String

常量:‘OpenDB'

db

String

报表路径

saveDynamicPerfCheck

Bool

用于在打开报告时记录动态性能检测的数据,true为打开,false为关闭。

注意:

所有传参最终使用JSON格式封装。

_iframe.contentWindow.postMessage(

  JSON.stringify({

     action: "OpenDB",

     db: "xxx",

    saveDynamicPerfCheck: true

  }),

  "*",

);

注意:

xxx替换为报告path。

成功响应

iframe内打开db指定的路径对应的报告。

错误响应

iframe内显示错误页面。

注意事项

无权限则iframe显示无权限提示或者跳转到登录页面。

4.刷新报告

允许用户通过此接口刷新报告。

参数

类型

约束

action

String

常量:‘RefreshDB'

id

String

必须指定报告 id

注意:

所有传参最终使用JSON格式封装。

_iframe.contentWindow.postMessage(

  JSON.stringify({

     action: "RefreshDB",

     id: "xxx"

  }),

  "*",

);

注意:

xxx替换为报告id;报告id获取,参考获取打开报告id

成功响应

iframe内刷新对应的报告。

错误响应

iframe内显示错误信息。

5.关闭报告

允许用户通过此接口关闭服务器端报告。

请求参数

参数

类型

约束

action

String

常量:‘CloseDB'

params

String

{id: xxx},必须指定报告id

注意:

所有传参最终使用JSON格式封装。

请求示例

_iframe.contentWindow.postMessage(

  JSON.stringify({

     action: "CloseDB",

     params: {

        id: "xxx"

     }

  }),

  "*",

);

注意:

xxx替换为报告id;报告id获取,参考获取打开报告id

成功响应

iframe内打开db无变化,再操作报告将不再响应。

错误响应

iframe内显示错误提示信息。