嵌入报表视觉对象
提示
请尝试在 power BI Embedded Analytics Playground的
本文介绍在应用程序中嵌入视觉对象的步骤。 详细了解 Power BI
如何嵌入视觉对象
在应用中嵌入 Power BI 内容时,使用配置对象定义要嵌入的内容并指定内容的设置。 然后将该对象传递给 API。
嵌入视觉对象时,请使用 IVisualLoadConfiguration
类型的配置对象:
interface IVisualLoadConfiguration {
accessToken?: string;
embedUrl?: string;
id?: string;
pageName: string;
tokenType?: models.TokenType;
type: string;
visualName: string;
}
此接口包括以下属性:
accessToken
- 用于访问要嵌入的 Power BI 数据的令牌。 请参阅 了解不同的嵌入解决方案 了解有关访问令牌的详细信息。embedUrl
- 包含要嵌入的视觉对象的报表的 URL。 此 URL 将成为包含嵌入视觉对象的 HTMLiframe
元素的源。 具体而言,API 将 URL 分配给iframe
的src
属性。 可以使用 报表 API 来获取此 URL。 两个示例包括:id
- Power BI 报表的 ID,其中包含要嵌入的视觉对象。pageName
- 包含要嵌入的视觉对象的页面的名称。 可以使用 Report getPages 方法获取报表中的页面。tokenType
- 用于访问要嵌入的 Power BI 数据的令牌类型。- 如果要为组织嵌入内容(用户拥有数据),请使用
models.TokenType.Aad
。 - 如果要为客户嵌入内容(应用拥有数据),请使用
models.TokenType.Embed
。
有关详细信息,请参阅 了解不同的嵌入解决方案。
- 如果要为组织嵌入内容(用户拥有数据),请使用
type
- 要嵌入的内容类型。 对视觉对象使用'visual'
。visualName
- 要嵌入的视觉对象的名称。 可以使用 Page getVisuals 方法获取页面中的视觉对象。
例
以下示例演示如何嵌入单个视觉对象:
// Set up the configuration object that determines what to embed and how to embed it.
let embedConfiguration = {
accessToken: anAccessToken,
embedUrl: anEmbedUrl,
id: aReportId,
pageName: aPageName,
tokenType: aTokenType,
type: 'visual',
visualName: aVisualName
};
// Get a reference to the HTML element that contains the embedded report.
let embedContainer = $('#embedContainer')[0];
// Embed the visual.
let visual = powerbi.embed(embedContainer, embedConfiguration);
过滤 器
默认情况下,updateFilters
API 将在嵌入单个报表视觉对象时应用视觉对象级别筛选器。
这可能会导致与嵌入配置对象中应用的筛选器发生冲突,因为这些筛选器在报表级别应用。
若要解决此问题,可以使用 API 设置筛选器级别:
await visual.updateFilters(FiltersOperations.Add, filters, FiltersLevel.Report);
详细了解 控制报表筛选器中的筛选器。