如何处理事件
- 版本 :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
链接时引发事件,并且超链接的行为设置为NavigateAndRaiseEvent
或RaiseEvent
。
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
触发保存时,将引发该事件。save
saveAs
选择已更改
selectionChanged
每当用户更改所选视觉对象时都会引发 该事件。selectedItems
is 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
呈现视觉效果时会引发该事件(需要在设置对象中设置visualRenderedEvents
为true)。
备注
由于视觉效果可能会因用户交互而呈现,因此建议仅在需要时打开此事件。
Javascript复制
name: string
有关详细信息,请参阅配置报告设置。
报告嵌入移动事件
Report Embed Mobile 事件是为与移动布局中的嵌入式报表交互而发出的,例如滑动的开始或结束。
swipeStart 和 swipeEnd 事件
swipeStart
swipeEnd
当用户开始或结束在嵌入报表上的滑动动作时,或事件被引发。
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 徽标消失时,加载完成。