Обработка событий

Кончик

Экспериментируйте с API в режиме реального времени с помощью собственного отчета или примера отчета в песочнице разработчика раздела игровой площадки Power BI Embedded Analytics.

События используются для обмена данными между компонентом Power BI (например, отчетом) и кодом веб-приложения.

Внедренный компонент выдает события после выполнения действия внутри компонента. Это может быть взаимодействие с пользователем или автоматизированное действие (например, визуал, отрисованный) в компоненте.

Например, buttonClicked — это событие, созданное отчетом Power BI, когда пользователь нажимает кнопку в отчете. Вы можете прослушивать событие с помощью report.on(...), а затем задать обработчик событий.

Пример обработки события

В этом примере показано, как обрабатывать событие отчета. Дополнительные сведения о других типах событий см. в событиях и их значениях ответа.

Заметка

Дождитесь загрузки компонента перед использованием API. Прослушивайте загруженное событие, а затем выполните новые команды.

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

Удаление обработчиков событий

Вы можете использовать report.off(...) для удаления всех обработчиков событий для определенного события.

События и их значения ответа

Просмотрите полный список возможных событий и их значения ответа.

События ошибок (относящиеся ко всем внедрениям)

Событие ошибки создается для описания неудачной операции.

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

Событие buttonClicked возникает, когда пользователь нажимает кнопку отчета.

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

commandTriggered

Событие commandTriggered возникает, когда пользователь щелкает команду расширения .

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

dataHyperlinkClicked

Событие dataHyperlinkClicked возникает при щелчке гиперссылки, а поведение гиперссылки имеет значение NavigateAndRaiseEvent или RaiseEvent.

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

Дополнительные сведения см. в разделе Настройка параметров отчета.

dataSelected

Событие dataSelected возникает при выборе определенной точки данных.

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

нагруженный

Событие loaded возникает при инициализации отчета. Загрузка завершается после исчезновения логотипа Power BI.

pageChanged

Событие pageChanged возникает при изменении страницы.

 newPage: Models.IPage

Предоставляемые

Событие rendered возникает при полной отрисовки отчета. Например, если все визуальные элементы отображаются при загрузке отчета или после взаимодействия с пользователем.

saveAsTriggered

Событие saveAsTriggered возникает, когда пользователь щелкает сохранить как в пользовательском интерфейсе. Это позволяет создать собственное диалоговое окно для действия сохранения как.

Сохранено

Событие saved возникает, когда сохранение активируется действием save или saveAs в пользовательском интерфейсе или с помощью API.

selectionChanged

Событие selectionChanged возникает всякий раз, когда пользователь изменяет выбранный визуальный элемент. selectedItems — это список всех выбранных визуальных элементов при выборе нескольких визуальных элементов.

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

visualClicked

Событие visualClicked возникает при каждом щелчке визуального элемента.

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

visualRendered

Событие visualRendered возникает при отрисовке визуального элемента (требуется visualRenderedEvents для true в объекте параметров).

Заметка

Так как визуальные элементы могут отображаться из-за взаимодействия с пользователем, рекомендуется включить это событие только при необходимости.

 name: string

Дополнительные сведения см. в разделе Настройка параметров отчета.

События внедрения отчетов для мобильных устройств

Событие "Внедрение отчетов для мобильных устройств" создается для взаимодействия с внедренным отчетом в мобильном макете, например начало или конец пальцем.

события swipeStart и swipeEnd

события swipeStart или swipeEnd возникают при начале или окончании движения пальцем в внедренном отчете.

interface ISwipeEvent {
    currentPosition: IPosition
    startPosition: IPosition
}

interface IPosition {
    x: number
    y: number
}

События панели мониторинга

Событие панели мониторинга создается при загрузке панели мониторинга и при нажатии пользователя на плитку на панели мониторинга.

нагруженный

Событие loaded возникает при инициализации панели мониторинга.

плиткаClicked

Событие tileClicked возникает, когда пользователь щелкает плитку. Он не поднимается для закрепленных динамических страниц.

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

События Q&A

Событие вопросов и ответов (Q&A) возникает при отображении визуального элемента после ввода вопроса.

visualRendered (Q&A)

Событие visualRendered возникает при отображении визуального элемента после ввода вопроса и отображения ответа.

 question: string
 normalizedQuestion: string

События плитки

Событие плитки возникает, когда пользователь щелкает плитку.

tileClicked (событие плитки)

Событие tileClicked возникает, когда пользователь щелкает плитку. Он не поднимается для закрепленных динамических страниц.

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

плитка Загружена

Событие tileLoaded возникает при инициализации плитки. Загрузка завершается после исчезновения логотипа Power BI.