ベストプラクティス
このセクションで説明するベストプラクティスを考慮してください。
Force.com Canvas SDK の参照
Force.com Canvas SDK は GitHub から入手できます。また、キャンバスアプリケーションから参照するには次の 2 つの方法があります。
- SDK を自分の Web サーバでホストして、そこからアクセスする
- Salesforce サーバにホストされた SDK にアクセスする
SDK を自分の Web サーバでホストする場合の include ステートメントの例は次のとおりです。
1<script type="text/javascript" src="/sdk/js/canvas-all.js></script>ホストされた SDK を参照する場合の include ステートメントの例は次のとおりです。
1<script type="text/javascript" src="https://<instance>.salesforce.com/canvas/sdk/js/33.0/canvas-all.js"></script>Salesforce サーバにある SDK を参照する機能は、Web アプリケーションにある SDK ファイル、あるいは Visualforce ページを含める場合に便利です。
ユーザインターフェースの考慮事項
キャンバスアプリケーションのユーザインターフェースを設計および実装するときには、次のような点に留意します。
- キャンバスのサイズ
- キャンバスアプリケーションのフレームサイズはアプリケーションが表示されている場所によって異なります。SDK を使用する場合、これらの値は Dimensions キャンバスオブジェクトで返されます。
- ロゴ画像
- キャンバスアプリケーションに関連付けられたロゴ画像は、ユーザがそのキャンバスアプリケーションをインストールするときか、OAuth 認証中にアプリケーションの実行を許可するように要求されるときに表示されます。256 ピクセル (高さ) × 256 ピクセル (幅) のサイズの画像を使用することをお勧めします。
- アイコン画像
- キャンバスアプリケーションに関連付けられたアイコン画像は、次の場所に表示されます。
- Chatter タブの Chatter アプリケーションリストにある、自分のキャンバスアプリケーションへのリンクの左側。
- キャンバスアプリケーションのプレビューアにある、自分のキャンバスアプリケーションへのリンクの左側。
- サムネイル画像
-
キャンバスアプリケーションのフィード項目に関連付けられたサムネイル画像は、フィードのキャンバスアプリケーションにアクセスすると表示されます。指定されている場合は、この画像はフィード項目のタイトルと説明の横に表示されます。
120 ピクセル (高さ) × 120 ピクセル (幅) 以下のサイズの画像を使用することをお勧めします。
Visualforce と Force.com Canvas を併用する場合の考慮事項
<apex:canvasApp> コンポーネントを使用するときの考慮事項は、次のとおりです。
- <apex:canvasApp> コンポーネントは、Force.com Canvas が有効になっている組織で、バージョン 27.0 以降の Visualforce ページでのみ使用できます。
- オブジェクトの詳細レイアウトにキャンバスアプリケーションを含める場合、ページレイアウトと <apex:canvasApp> コンポーネントにキャンバスアプリケーションの高さを指定する必要があります。
- 場所 — キャンバスアプリケーションが Visualforce ページにある場合、Environment.displayLocation 項目には Visualforce という値が含まれます。
Force.com Canvas の制限
Force.com Canvas はマルチテナント環境で実行されるため、共有リソースが確実に保護されるように制限が課せられます。
クロスドメイン XHR
キャンバスアプリケーションは、iFrame の Salesforce ページにロードされます。このため、キャンバスアプリケーションは (それ自体のドメインでは) XHR (XML HTTP 要求) のコールを *.salesforce.com ドメインに返すことはできません。独自のプロキシを SDK の一部として作成およびリリースできますが、Force.com Canvas には、JavaScript で作成されたクライアント側のプロキシが用意されています。このプロキシを使用して、クライアント側の XHR コールを Salesforce に返すことができます。
クライアントからこのプロキシを使用して XHR 要求を作成すると、API によってその要求が外部の iFrame に転送され、要求が自動的に送信されます。要求が完了すると、SDK はその結果を使用してクライアントのコールバック関数をコールします。