Osadzanie raportu usługi Power BI z układem dla urządzeń przenośnych
Użytkownicy mobilni mogą wyświetlać dowolną stronę raportu usługi Power BI w orientacji poziomej. Autorzy raportów mogą jednak utworzyć dodatkowy widok zoptymalizowany pod kątem urządzeń przenośnych i wyświetlać go w orientacji pionowej. Ta opcja projektowania, która jest dostępna zarówno w programie Power BI Desktop, jak i w usłudze Power BI, umożliwia autorom wybieranie i zmienianie kolejności tylko tych wizualizacji, które mają sens dla użytkowników mobilnych w podróży.
Jeśli raport ma układ mobilny utworzony w programie Power BI Desktop lub usłudze Power BI, możesz osadzić raport z tym układem w aplikacji internetowej.
Jak osadzić raport przy użyciu układu mobilnego
Najpierw musisz utworzyć układ mobilny dla raportu, zapoznaj się z Optymalizowanie raportów usługi Power BI dla aplikacji mobilnej w celu utworzenia tego układu.
Aby osadzić raport usługi Power BI w układzie mobilnym raportu, należy ustawić layoutType
na models.LayoutType.MobilePortrait
w obiekcie ustawień:
let embedConfig = {
...
settings: {
layoutType: models.LayoutType.MobilePortrait
}
};
Aby uzyskać więcej informacji na temat ustawień raportu, zobacz Konfigurowanie ustawień raportu.
Istnieją dwa typy układów przeznaczone dla urządzeń przenośnych:
MobilePortrait
— zoptymalizowany pod kątem widoku pionowego. Jest to układ mobilny utworzony dla raportu.MobileLandscape
— zoptymalizowana pod kątem widoku poziomego. Jest to zwykły układ raportu.
Nuta
Układ raportu będzie określany przez właściwość layoutType
niezależnie od rzeczywistej orientacji urządzenia.
Na przykład poniższy kod pokazuje, jak osadzić raport za pomocą układu mobilnego.
// 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
}
};
Aby zaktualizować układ raportu, gdy raport jest już załadowany, użyj metody report.updateSettings
. Aby uzyskać więcej informacji, zobacz Aktualizowanie ustawień raportu w czasie wykonywania.
const newSettings = {
layoutType: models.LayoutType.MobileLandscape
};
report.updateSettings(newSettings);
Sprawdzanie, czy strona raportu ma układ mobilny
Klasa Page
hasLayout(layoutType: any): Promise<boolean>
Metoda hasLayout
zwróci wartość logiczną, jeśli strona ma określony typ układu.
let pages = await report.getPages();
let mobileLayout = pages[0].hasLayout(models.LayoutType.MobilePortrait);
Możesz użyć osadzania etapowego z hasLayout
, aby sprawdzić, czy strona ma układ mobilny przed renderowaniem raportu.
Szybko przesuń zdarzenia
Podczas osadzania raportu w układzie mobilnym można nasłuchiwać zdarzeń przesunięcia i uruchamiać niestandardowy kod w aplikacji internetowej.
Istnieją dwa zdarzenia przesunięcia, swipeStart
i swipeEnd
oba zwracają następujący format:
interface ISwipeEvent {
currentPosition: IPosition;
startPosition: IPosition;
}
interface IPosition {
x: number;
y: number;
}
Możesz na przykład użyć zdarzenia swipeEnd
, aby wykryć lewe przesunięcie:
report.on("swipeEnd", function(event) {
const swipeEndEvent = event.detail.swipeEvent;
if (swipeEndEvent.currentPosition.x < swipeEndEvent.startPosition.x) {
console.log("Swipe left detected");
}
});
Aby uzyskać więcej informacji na temat obsługi zdarzeń, zobacz Jak obsługiwać zdarzenia.
Optymalizowanie aplikacji przy użyciu układów niestandardowych
Możesz również użyć funkcji niestandardowego układu, aby utworzyć dostosowane układy zoptymalizowane pod kątem różnych urządzeń przenośnych lub ekranów tabletów.
Zagadnienia i ograniczenia
Po początkowym załadowaniu raportu zmiana układu mobilnego na raport jest obsługiwana tylko wtedy, gdy układ mobilny (pionowy/poziomy) został ustawiony na początkowy obiekt konfiguracji osadzania. W przeciwnym razie należy najpierw wywołać
powerbi.reset(HTMLElement)
, aby usunąć element iframe. Następnie należy wywołaćpowerbi.embed(...)
przy użyciu tego samego kontenera z ustawieniem układu mobilnego zdefiniowanym w osadzonym obiekcie konfiguracji.Jeśli spróbujesz osadzić stronę raportu z układem
MobilePortrait
, a strona nie ma układu mobilnego, strona zostanie załadowana z układemMobileLandscape
.Aby umożliwić użytkownikom nawigowanie między stronami podczas korzystania z układów mobilnych, możesz użyć
report.setPage
i zaimplementować własną nawigację. Aby uzyskać więcej informacji, zobacz Nawigacja po stronie.Powyższe konfiguracje odnoszą się do osadzania raportu usługi Power BI w widoku dla urządzeń przenośnych.
Osadzanie pulpitu nawigacyjnego można skonfigurować do układu mobilnego przy użyciu konfiguracji pageView:pageView: 'oneColumn'