Dela via


Lägga till en landningssida i ditt visuella Power BI-objekt

Ett visuellt Power BI-objekts landningssida kan visa information i ditt visuella Power BI-kort innan kortet hämtar data. Ett visuellt objekts landningssida kan visa:

  • Text som förklarar hur du använder det visuella objektet.
  • En länk till din webbplats.
  • En länk till en video.

Screenshot of a Power BI visual's example landing page.

Den här artikeln beskriver hur du utformar en landningssida för ditt visuella objekt. Landningssidan visas när det visuella objektet inte har några data i sig.

Kommentar

Design av en visuell Power BI-landningssida stöds i API-version 2.3.0 och senare. Om du vill ta reda på vilken version du använder kontrollerar apiVersion du i filen pbiviz.json .

Skapa en landningssida

För att skapa en landningssida måste två funktioner anges i capabilities.json filen.

  • Aktivera för att landningssidan ska fungera supportsLandingPage.
  • Aktivera för att landningssidan ska visas i visningsläge eller för att det visuella objektet ska vara interaktivt även om det inte är i något datarollerläge.supportsEmptyDataView
    {
        "supportsLandingPage": true,
        "supportsEmptyDataView": true,
    }

Exempel på ett visuellt objekt med en landningssida

Följande kod visar hur en landningssida kan läggas till i ett visuellt stapeldiagram.

export class BarChart implements IVisual {
    //...
    private element: HTMLElement;
    private isLandingPageOn: boolean;
    private LandingPageRemoved: boolean;
    private LandingPage: d3.Selection<any>;

    constructor(options: VisualConstructorOptions) {
            //...
            this.element = options.element;
            //...
    }

    public update(options: VisualUpdateOptions) {
    //...
        this.HandleLandingPage(options);
    }

    private HandleLandingPage(options: VisualUpdateOptions) {
        if(!options.dataViews || !options.dataViews[0]?.metadata?.columns?.length){
            if(!this.isLandingPageOn) {
                this.isLandingPageOn = true;
                const SampleLandingPage: Element = this.createSampleLandingPage(); //create a landing page
                this.element.appendChild(SampleLandingPage);
                this.LandingPage = d3.select(SampleLandingPage);
            }

        } else {
                if(this.isLandingPageOn && !this.LandingPageRemoved){
                    this.LandingPageRemoved = true;
                    this.LandingPage.remove();
                }
        }
    }