この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

モバイルとデスクトップの両方で機能する Visualforce ページの作成

実行されるコンテキストに適合するコードを記述して、Salesforce1 アプリケーションと Salesforce フルサイトの両方で有効に機能する Visualforce ページを作成します。

Salesforce1 はさまざまなナビゲーションコントロールとイベントを処理するフレームワークを提供します。sforce オブジェクトは Salesforce1 内のページにのみ挿入されるため、Salesforce フルサイト上で実行しているときに Visualforce ページでこのフレームワークを利用できません。つまり、Salesforce1 アプリケーションと Salesforce フルサイトの両方で共有されるページの場合、sforce オブジェクトが利用可能なときはこれを使用し、利用可能でないときは標準の Visualforce ナビゲーションを使用するようにコードを記述します。

たとえば、注文を簡易作成する @RemoteAction メソッドから JavaScript Remoting 要求が返った後に実行される簡単な JavaScript を次に示します。このコードは、カスタムアクションとして使用される Visualforce ページを元にしています。カスタムアクションがこのコードを Salesforce1 アプリケーションのアクションバーおよび Salesforce フルサイトのパブリッシャーメニューに追加します。このコードは両方の場所で機能する必要があります。コードの意図は、注文した取引先の詳細ページへの移動です。

if ステートメントによって、sforce オブジェクトが利用可能かつ有用であるかどうかが確認されます。これは、ページが Salesforce1 内で実行されている��合のみ true です。sforce が利用可能な場合、Salesforce1 ナビゲーション管理システムは取引先の詳細ページへの移動に使用されます。

sforce オブジェクトが利用可能でない場合、これを使用する試みは JavaScript エラーとなり、ナビゲーションは行われません。その代わりに、取引先の詳細ページの URL を返す Visualforce 式を使用して、コードがウィンドウの URL を設定します。ナビゲーションイベントがフレームワークによって失われるため、Salesforce1 でこの方法を使用するのは好ましくないかもしれませんが、通常の Visualforce では必要になります。

このような共通テストは独自のヘルパー関数としてくくり出すことをお勧めします。次のようなコードを JavaScript 静的リソースに追加し、if 条件で ForceUI.isSalesforce1() を単にコールします。このようにすると、検出ロジックが変更しても、それを 1 か所で更新するだけですみます。

メモ