本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂 QuickSight 內嵌儀表板和視覺效果的外觀和風格
您可以使用 Amazon QuickSight Embedding SDK(2.5.0 版及更高版本) 來變更執行階段內嵌 QuickSight 儀表板和視覺效果的這些項目。執行期它們可讓您更輕鬆地將軟體即服務 SaaS) 應用程式與 Amazon QuickSight 內嵌資產整合。執行期它們可讓您將內嵌內容的主題與 QuickSight 資產內嵌的父應用程式主題同步。您也可以使用執行期,為讀取器新增自訂選項。主題變更可在初始化時或內嵌儀表板或視覺效果的整個生命週期內套用至內嵌資產。
如需主題的詳細資訊,請參閱 在 Amazon 中使用主題 QuickSight。如需使用 QuickSight 內嵌 的詳細資訊SDK,請參閱amazon-quicksight-embedding-sdk
先決條件
在開始之前,請確定您有下列先決條件。
-
您正在使用 QuickSight 內嵌 2SDK.5.0 版或更新版本。
-
存取您要使用之主題的許可。若要將許可授予 中的主題 QuickSight,
UpdateThemePermissions
API請撥打電話或使用 QuickSight 主控台分析編輯器中主題旁的共用圖示。
術語與概念
下列術語在處理內嵌執行期時非常有用。
-
主題 – 一組設定,您可以套用至多個分析和儀表板,以變更內容的顯示方式。
-
ThemeConfiguration – 包含主題所有顯示屬性的組態物件。
-
主題覆寫 – 套用至作用中主題的
ThemeConfiguration
物件,可覆寫內容顯示方式的部分或全部層面。 -
主題 ARN – 識別主題的 Amazon Resource Name QuickSight (ARN)。以下是自訂主題 的範例ARN。
arn:aws:quicksight:region:account-id:theme/theme-id
QuickSight 提供的入門主題在其主題 中沒有 區域ARN。以下是入門主題 的範例ARN。
arn:aws:quicksight::aws:theme/CLASSIC
設定
請確定您已備妥下列資訊,以開始使用執行期。
-
您要使用的主題ARNs。您可以選擇現有的主題,也可以建立新的主題。若要取得ARNs QuickSight 帳戶中所有主題的清單,請呼叫 ListThemesAPI操作。如需預設 QuickSight 主題的資訊,請參閱 使用 設定 Amazon QuickSight 分析的預設主題 QuickSight APIs。
-
如果您使用的是已註冊的使用者內嵌,請確定使用者可存取您要使用的主題。
如果您使用匿名使用者內嵌,請將主題清單傳遞ARNs至
GenerateEmbedUrlForAnonymousUser
的AuthorizedResourceArns
參數API。匿名使用者有權存取AuthorizedResourceArns
參數中列出的任何主題。
SDK 方法介面
設定程式方法
下表描述了開發人員可用於執行期它們的不同設定程式方法。
方法 | 描述 |
---|---|
|
將儀表板或視覺效果的作用中主題取代為另一個主題。如果套用,則會移除主題覆寫。 如果您無法存取該主題或該主題不存在,則會傳回錯誤。 |
|
設定動態 如果您提供的 無效 |
使用主題初始化內嵌內容
若要使用非預設主題初始化內嵌儀表板或視覺效果,請在 DashboardContentOptions
或 VisualContentOptions
參數上定義themeOptions
物件,並將 中的 themeArn
屬性設定為themeOptions
所需的主題 ARN。
下列範例會使用 MIDNIGHT
主題初始化內嵌儀表板。
import { createEmbeddingContext } from 'amazon-quicksight-embedding-sdk'; const embeddingContext = await createEmbeddingContext(); const { embedDashboard, } = embeddingContext; const frameOptions = { url: '<YOUR_EMBED_URL>', container: '#experience-container', }; const contentOptions = { themeOptions: { themeArn: "arn:aws:quicksight::aws:theme/MIDNIGHT" } }; // Embedding a dashboard experience const embeddedDashboardExperience = await embedDashboard(frameOptions, contentOptions);
使用主題覆寫初始化內嵌內容
開發人員可以使用主題覆寫,在執行階段定義內嵌儀表板或視覺效果的主題。這可讓儀表板或視覺效果從第三方應用程式繼承主題,而不需要在 中預先設定主題 QuickSight。若要使用主題覆寫初始化內嵌儀表板或視覺效果,請在 或 DashboardContentOptions
VisualContentOptions
參數themeOptions
中設定 中的 themeOverride
屬性。下列範例會將儀表板主題的字型從預設字型覆寫為 Amazon Ember
。
import { createEmbeddingContext } from 'amazon-quicksight-embedding-sdk'; const embeddingContext = await createEmbeddingContext(); const { embedDashboard, } = embeddingContext; const frameOptions = { url: '<YOUR_EMBED_URL>', container: '#experience-container', }; const contentOptions = { themeOptions: { "themeOverride":{"Typography":{"FontFamilies":[{"FontFamily":"Comic Neue"}]}} } }; // Embedding a dashboard experience const embeddedDashboardExperience = await embedDashboard(frameOptions, contentOptions);
使用預先載入的主題初始化內嵌內容
開發人員可以設定一組要在初始化時預先載入的儀表板主題。這對於快速切換不同檢視最有幫助,例如暗模式和亮模式。內嵌儀表板或視覺效果最多可以 5 個預先載入的主題進行初始化。若要使用預先載入的主題,請在 DashboardContentOptions
或 中設定 preloadThemes
屬性VisualContentOptions
,陣列最多為 5 themeArns
。下列範例會將 Midnight
和Rainier
入門主題預先載入儀表板。
import { createEmbeddingContext } from 'amazon-quicksight-embedding-sdk'; const embeddingContext = await createEmbeddingContext(); const { embedDashboard, } = embeddingContext; const frameOptions = { url: '<YOUR_EMBED_URL>', container: '#experience-container', }; const contentOptions = { themeOptions: { "preloadThemes": ["arn:aws:quicksight::aws:theme/RAINIER", "arn:aws:quicksight::aws:theme/MIDNIGHT"] } }; // Embedding a dashboard experience const embeddedDashboardExperience = await embedDashboard(frameOptions, contentOptions);