キャンバスアプリケーションの動作の制御
署名付き要求のデフォルトの動作を変更するには、Canvas.CanvasLifecycleHandler.onRender() を実装する Apex クラスを指定し、このクラスをキャンバスアプリケーションに関連付ける必要があります。onRender() 実装では、カスタムコードを使用してアプリケーションの動作を制御できます。
Salesforce は、アプリケーションが表示される直前に onRender() の実装をコールします。現在のコンテキスト情報は、Canvas.RenderContext パラメータでこのメソッドに渡されます。
onRender() 実装では、次のコンテキスト情報を取得できます。
- アプリケーションコンテキストデータ (キャンバスアプリケーション名、URL、バージョン、名前空間など)。
- 環境コンテキストデータ (表示場所、下位の表示場所、オブジェクト項目名、カスタムパラメータ)。
- キャンバスアプリケーション URL のアプリケーションドメイン以降の部分。
- キャンバスアプリケーションがオブジェクトページに表示される場合に Salesforce が Record コンテキストデータを返すオブジェクト項目のリスト。<apex:canvasApp> コンポーネントを使用してキャンバスアプリケーションが Visualforce ページに表示され、その Visualforce ページがオブジェクトに関連付けられている場合などにキャンバスアプリケーションがオブジェクトページに表示されます。
- キャンバスアプリケーションに渡されるカスタムパラメータ。
次の処理を行う onRender() 実装の例を以下に示します。
- アプリケーションのバージョン情報をチェックし、サポートされていないバージョンの場合は CanvasRenderException を発生させます。
- 「/alternatePath」を元の URL のドメイン部分に追加して、現在のキャンバスアプリケーション URL を上書きします。
- キャンバスアプリケーションが取引先ページに表示されることを予測して、Name、BillingAddress、および YearStarted を含めるようにオブジェクト項目のリストを設定します。
- 新しい「newCustomParam」パラメータを追加して、カスタムパラメータのセットを上書きします。現在のパラメータのセットは、最初にローカルで取得されてキャッシュされます。setParametersAsJSON() をコールするときに現在のカスタムパラメータのセットが失われないように、新しいパラメータがキャッシュリストに追加されます。