Внедрение отчета Power BI с помощью макета мобильных устройств
Мобильные пользователи могут просматривать любую страницу отчета Power BI в альбомной ориентации. Однако авторы отчетов могут создать дополнительное представление, оптимизированное для мобильных устройств и отображаемое в книжной ориентации. Этот вариант конструктора, доступный как в Power BI Desktop, так и в службе Power BI, позволяет авторам выбирать и изменять порядок только тех визуальных элементов, которые имеют смысл для мобильных пользователей на ходу.
Если в отчете есть мобильный макет, созданный в Службе Power BI Desktop или Power BI, вы можете внедрить отчет с помощью этого макета в веб-приложение.
Внедрение отчета с помощью макета мобильных устройств
Сначала необходимо создать мобильный макет для отчета, ознакомьтесь с Оптимизации отчетов Power BI для мобильного приложения для создания этого макета.
Чтобы внедрить отчет Power BI в мобильный макет отчета, необходимо задать для layoutType
значение models.LayoutType.MobilePortrait
в объекте параметров:
let embedConfig = {
...
settings: {
layoutType: models.LayoutType.MobilePortrait
}
};
Дополнительные сведения о параметрах отчета см. в разделе Настройка параметров отчета.
Существует два типа макета, предназначенных для мобильных устройств:
MobilePortrait
— оптимизировано для книжного представления. Это мобильный макет, созданный для отчета.MobileLandscape
— оптимизировано для ландшафтного представления. Это обычный макет отчета.
Заметка
Макет отчета определяется свойством layoutType
независимо от фактической ориентации устройства.
Например, в следующем коде показано, как внедрить отчет с помощью мобильного макета.
// Get models. models contains enums that can be used.
var models = window['powerbi-client'].models;
var embedConfiguration = {
type: 'report',
id: reportId,
embedUrl: embedUrl,
tokenType: tokenType,
accessToken: accessToken,
settings: {
layoutType: models.LayoutType.MobilePortrait
}
};
Чтобы обновить макет отчета при загрузке отчета, используйте метод report.updateSettings
. Дополнительные сведения см. в разделе Обновление параметров отчета во время выполнения.
const newSettings = {
layoutType: models.LayoutType.MobileLandscape
};
report.updateSettings(newSettings);
Проверка наличия макета мобильного макета страницы отчета
Класс клиента Power BI Client
hasLayout(layoutType: any): Promise<boolean>
Метод hasLayout
возвращает логическое значение, если страница имеет указанный тип макета.
let pages = await report.getPages();
let mobileLayout = pages[0].hasLayout(models.LayoutType.MobilePortrait);
Вы можете использовать поэтапное внедрение с hasLayout
, чтобы проверить, имеет ли страница макет мобильных устройств перед отображением отчета.
Проводите пальцем по событиям
При внедрении отчета в мобильный макет можно прослушивать события прокрутки и запускать пользовательский код в веб-приложении.
Есть два события прокрутки, swipeStart
и swipeEnd
оба возвращают следующий формат:
interface ISwipeEvent {
currentPosition: IPosition;
startPosition: IPosition;
}
interface IPosition {
x: number;
y: number;
}
Например, можно использовать событие swipeEnd
для обнаружения пальцем влево:
report.on("swipeEnd", function(event) {
const swipeEndEvent = event.detail.swipeEvent;
if (swipeEndEvent.currentPosition.x < swipeEndEvent.startPosition.x) {
console.log("Swipe left detected");
}
});
Дополнительные сведения об обработке событий см. в разделе Обработка событий.
Оптимизация приложения с помощью пользовательских макетов
Вы также можете использовать функцию пользовательского макета для создания настраиваемых макетов, оптимизированных для различных мобильных устройств или планшетных экранов.
Рекомендации и ограничения
После начальной загрузки отчета изменение макета мобильных устройств поддерживается только в том случае, если в объект конфигурации начального внедрения был установлен макет мобильных устройств (книжный или альбомный). В противном случае необходимо сначала вызвать
powerbi.reset(HTMLElement)
, чтобы удалить iframe. Затем необходимо вызватьpowerbi.embed(...)
с помощью того же контейнера с параметром макета мобильного устройства, определенным в внедренном объекте конфигурации.Если вы пытаетесь внедрить страницу отчета с макетом
MobilePortrait
, а страница не имеет мобильного макета, страница будет загружена с помощью макетаMobileLandscape
.Чтобы пользователи могли перемещаться между страницами при использовании мобильных макетов, можно использовать
report.setPage
и реализовать собственную навигацию. Дополнительные сведения см. в навигации по страницам.Приведенные выше конфигурации относятся к внедрению отчета Power BI в мобильное представление.
Внедрение панели мониторинга можно настроить для мобильного макета с конфигурацией pageView:pageView: 'oneColumn'