Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Hvis du vil have en visualisering certificeret, skal den indeholde gengivelseshændelser. Disse hændelser giver lyttere (primært eksportér til PDF og eksport til PowerPoint) besked om, hvornår visualiseringen gengives, og hvornår den er klar til eksport.
Vigtigt
Alle visualiseringer, der eksporterer data (f.eks. til en PowerPoint- eller .pdf-fil ), skal indeholde gengivelseshændelser for at sikre, at eksporten ikke starter, før visualiseringen er færdig med at blive gengivet.
API'en til gengivelseshændelser består af tre metoder, der skal kaldes under gengivelse:
renderingStarted: Kald denne metode for at angive, at gengivelsen er startet. Kald altid denne metode som den første linje i opdateringsmetoden, da det er her, gengivelsesprocessen starter.renderingFinished: Kald denne metode, når gengivelsen er fuldført, for at give lytterne besked om, at visualiseringens billede er klar til eksport. Dette kald skal være den sidste kodelinje, der kører, når visualiseringen opdateres. Det er normalt, men ikke altid, den sidste linje i opdateringsmetoden.renderingFailed: Kald denne metode, hvis der opstår et problem under gengivelsen, for at give lyttere besked om, at gengivelsen ikke blev fuldført. Du kan overføre en valgfri streng for at angive en årsag til fejlen.
Bemærk
Gengivelseshændelser er et krav for certificering af visualiseringer. Uden dem bliver din visualisering ikke godkendt af Partnercenter til publicering. Du kan få flere oplysninger under Certificeringskrav.
Sådan bruger du API'en til gengivelseshændelser
Hvis du vil kalde gengivelsesmetoderne, skal du først importere IVisualEventService typen.
Tilføj følgende import i filen
visual.ts:import IVisualEventService = powerbi.extensibility.IVisualEventService;Tilføj et privat felt i
IVisualklassen:private events: IVisualEventService;constructorI metoden forIVisualklassen skal du initialisere feltet:this.events = options.host.eventService;
Du kan nu kalde this.events.renderingStarted(options);, this.events.renderingFinished(options);og this.events.renderingFailed(options); , hvor det er relevant, i din opdateringsmetode .
Gengivelse af hændelseslivscyklus
Følg disse regler i hver update() cyklus:
- Ring op
renderingStarted, når gengivelsen begynder. - Kald præcis én fuldførelsesmetode for den pågældende cyklus:
-
renderingFinishednår gengivelsen lykkes, eller -
renderingFailednår gengivelsen mislykkes.
-
- Kald
renderingFinishedkun for asynkron gengivelse, når gengivelsen er fuldført.
Vigtigt
Lad update() ikke metoden afslutte uden at signalere fuldførelse. Når du har ringet til renderingStarted, skal du altid ringe til enten renderingFinished eller renderingFailed.
Kodeimplementeringsmønstre
Synkron opdatering med fejlhåndtering
public update(options: VisualUpdateOptions): void {
this.host.eventService.renderingStarted(options);
try {
this.renderView(options); // visual rendering logic
this.host.eventService.renderingFinished(options);
} catch (error) {
this.host.eventService.renderingFailed(options, String(error));
throw error;
}
}
Asynkron opdatering med fejlhåndtering
public async update(options: VisualUpdateOptions): Promise<void> {
this.host.eventService.renderingStarted(options);
try {
await this.renderAsync(options); // visual rendering logic
this.host.eventService.renderingFinished(options);
} catch (error) {
this.host.eventService.renderingFailed(options, String(error));
throw error;
}
}
Lover kæde med .then().catch()
public update(options: VisualUpdateOptions): void {
this.host.eventService.renderingStarted(options);
this.renderAsync(options) // visual rendering logic
.then(() => {
this.host.eventService.renderingFinished(options);
})
.catch((error) => {
this.host.eventService.renderingFailed(options, String(error));
throw error;
});
}