Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk mendapatkan sertifikasi visual, peristiwa render harus tercakup. Peristiwa ini memungkinkan pendengar (terutama, mengekspor ke PDF dan mengekspor ke PowerPoint) tahu kapan visual sedang dirender dan kapan siap untuk diekspor.
Penting
Setiap visual yang mengekspor data (misalnya, ke file PowerPoint atau .pdf ) harus berisi peristiwa penyajian untuk memastikan bahwa ekspor tidak dimulai sebelum penyajian visual selesai.
API peristiwa penyajian terdiri dari tiga metode untuk dipanggil selama penyajian:
renderingStarted: Panggil metode ini untuk menunjukkan bahwa penyajian dimulai. Selalu sebut metode ini sebagai baris pertama metode pembaruan Anda, karena di situlah proses penyajian dimulai.renderingFinished: Panggil metode ini saat penyajian berhasil diselesaikan, untuk memberi tahu pendengar bahwa gambar visual siap untuk diekspor. Panggilan ini harus menjadi baris kode terakhir yang berjalan saat visual diperbarui. Biasanya, tetapi tidak selalu, baris terakhir dari metode pembaruan.renderingFailed: Panggil metode ini jika terjadi masalah selama penyajian, untuk memberi tahu pendengar bahwa penyajian tidak selesai. Anda dapat meneruskan string opsional untuk memberikan alasan kegagalan.
Catatan
Me-render Peristiwa adalah persyaratan untuk sertifikasi visual. Tanpa me-render peristiwa, visual Anda tidak akan disetujui oleh Pusat Mitra untuk publikasi. Untuk informasi lebih lanjut, lihat Persyaratan sertifikasi.
Cara menggunakan API peristiwa render
Untuk memanggil metode penyajian, pertama-tama impor jenisnya IVisualEventService .
Di file Anda
visual.ts, tambahkan impor berikut:import IVisualEventService = powerbi.extensibility.IVisualEventService;IVisualDi kelas , tambahkan bidang privat:private events: IVisualEventService;constructorDalam metodeIVisualkelas , inisialisasi bidang :this.events = options.host.eventService;
Anda sekarang dapat memanggil this.events.renderingStarted(options);, this.events.renderingFinished(options);, dan this.events.renderingFailed(options); jika sesuai dalam metode pembaruan Anda.
Merender siklus hidup peristiwa
Ikuti aturan ini di setiap update() siklus:
- Panggilan
renderingStartedsaat penyajian dimulai. - Panggil tepat satu metode penyelesaian untuk siklus tersebut:
-
renderingFinishedsaat penyajian berhasil, atau -
renderingFailedsaat penyajian gagal.
-
- Untuk penyajian asinkron, panggil
renderingFinishedhanya setelah penyajian benar-benar selesai.
Penting
Jangan biarkan update() metode keluar tanpa memberi sinyal penyelesaian. Setelah Anda memanggil renderingStarted, Anda harus selalu memanggil atau renderingFinishedrenderingFailed.
Pola implementasi kode
Pembaruan sinkron dengan penanganan kegagalan
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;
}
}
Pembaruan asinkron dengan penanganan kegagalan
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;
}
}
Rantai janji dengan .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;
});
}