如何处理事件

  • 版本 :2023.1(当前版本)

如何处理事件

提示

使用您自己的报告或我们在Power BI Embedded Analytics Playground的开发人员沙箱部分中的示例报告实时试验 API 。

事件用于在 Power BI 组件(例如报表)和 Web 应用程序代码之间进行通信。

嵌入式组件在组件内部执行操作后发出事件。这些可以是组件内的用户交互或自动操作(如呈现的视觉效果)。

例如,buttonClicked是当用户单击报表中的按钮时由 Power BI 报表发出的事件。您可以使用 来侦听事件report.on(...),然后设置事件处理程序。

如何处理事件的示例

此示例显示如何处理报告事件。要了解其他类型的事件,请参阅事件及其响应值。

备注

在使用 API 之前等待组件加载。收听加载的事件,然后发出新的命令。

Javascript复制

report.on('loaded', function(event){
reportPages = await report.getPages();
});

如何删除事件处理程序

您可以使用report.off(...)删除特定事件的所有事件处理程序。

事件及其响应值

查看可能事件及其响应值的完整列表。

错误事件(与所有嵌入相关)

发出错误事件以描述失败的操作。

Javascript复制

interface IError {    message: string // A general message that describes the operation that failed (example: "Could not set page")
detailedMessage?: string // Detailed message that describes the error
errorCode?: string // Short message that describes the error
level?: TraceType // The level of the error (example: 'Fatal')
technicalDetails?: ITechnicalDetails
}

interface ITechnicalDetails {
requestId?: string // Id for debugging - should be provided when reporting a bug}

备注

只有message属性是必需的,其他属性可能未定义。

报告事件

为与嵌入式报表的交互发出报表事件,例如单击报表按钮或呈现视觉对象。

按钮被点击

buttonClicked当用户单击“报告”按钮时会引发该事件。

Javascript复制

 id: string
title?: string
type?: string (type of button)
bookmark?: string

命令触发

commandTriggered当用户单击扩展命令时引发该事件。

Javascript复制

 command: string
dataPoints?: IIdentityValue[]
report: models.IReport
page: models.IPage
visual: models.IVisual

数据超链接被点击

单击超dataHyperlinkClicked链接时引发事件,并且超链接的行为设置为NavigateAndRaiseEventRaiseEvent

Javascript复制

 url: string
report: models.IReport
page: models.IPage
visual: models.IVisual

有关详细信息,请参阅配置报告设置。

资料已选

dataSelected选择特定数据点时会引发该事件。

Javascript复制

 report: models.IReport
page: models.IPage
visual: models.IVisual
filters: IFilter[]
dataPoints: IIdentityValue[]

加载

loaded事件在报表初始化时引发。当 Power BI 徽标消失时,加载完成。

页面已更改

pageChanged每当页面更改时都会引发该事件。

Javascript复制

 newPage: Models.IPage

呈现

rendered当报告完全呈现时引发该事件。例如,如果所有视觉效果都是在加载报表时或在用户交互之后呈现的。

另存为触发

当用户在 UI 中saveAsTriggered单击“另存为”时将引发该事件。这使您可以为“另存为”操作创建自己的对话框。

已保存

当 UI 中的或操作或使用 APIsaved触发保存时,将引发该事件。savesaveAs

选择已更改

selectionChanged每当用户更改所选视觉对象时都会引发 该事件。selectedItemsis a list of all selected visuals when more than one is selected.

Javascript复制

 report: models.IReport
page: models.IPage
visual?: models.IVisual
selectedItems?: models.IVisual[]

视觉点击

visualClicked每次单击视觉对象时都会引发该事件。

Javascript复制

 report: models.IReport
page: models.IPage
visual: models.IVisual

视觉渲染

visualRendered呈现视觉效果时会引发该事件(需要在设置对象中设置visualRenderedEventstrue)。

备注

由于视觉效果可能会因用户交互而呈现,因此建议仅在需要时打开此事件。

Javascript复制

 name: string

有关详细信息,请参阅配置报告设置。

报告嵌入移动事件

Report Embed Mobile 事件是为与移动布局中的嵌入式报表交互而发出的,例如滑动的开始或结束。

swipeStart 和 swipeEnd 事件

swipeStartswipeEnd当用户开始或结束在嵌入报表上的滑动动作时,或事件被引发。

Javascript复制

interface ISwipeEvent {    currentPosition: IPosition
startPosition: IPosition
}

interface IPosition { x: number
y: number
}

仪表板事件

当加载仪表板以及用户单击仪表板中的磁贴时,会发出仪表板事件。

加载

loaded仪表板初始化时会引发该事件。

瓦片点击

tileClicked当最终用户单击磁贴时会引发该事件。它不会为固定的实时页面引发。

Javascript复制

 tileId: string
navigationUrl: string
pageName: string
reportEmbedUrl: string

问答活动

输入问题后呈现视觉效果时,会引发问答 (Q&A) 事件。

visualRendered(问答)

visualRendered在输入问题并显示答案后呈现视觉效果时会引发该事件。

Javascript复制

 question: string
normalizedQuestion: string

平铺事件

当用户单击磁贴时会引发 Tile 事件。

tileClicked(瓷砖事件)

tileClicked当最终用户单击磁贴时会引发该事件。它不会为固定的实时页面引发。

Javascript复制

 tileId: string
navigationUrl: string
pageName: string
reportEmbedUrl: string

瓦片加载

tileLoaded事件在磁贴初始化时引发。当 Power BI 徽标消失时,加载完成。