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

ナビゲーションの管理

Salesforce1 では、イベントを使用してナビゲーションを管理します。ナビゲーションイベントフレームワークは、プログラムできちんと機能するナビゲーションを簡単に作成するための多数のユーティリティ関数を備えた JavaScript オブジェクトとして利用できます。このフレームワークの利点は、モバイルコンテキストでより自然にナビゲーションできることです。また、注文が正常に送信された後に注文ページにリダイレクトする場合など、完了後のナビゲーションを Salesforce1 開発者が容易に作成できることも利点です。
Salesforce1 で、Visualforce ページのプログラムによるナビゲーションは概して次のように機能します。
  1. ユーザが、通常はナビゲーションメニューまたはアクションバーのアクションから Visualforce ページを呼び出します。
  2. Visualforce ページと、ページによってコールされたカスタムコントローラや拡張コードが読み込まれ実行されます。
  3. ユーザが何らかの方法で (フォームへの値の入力など) ページを操作します。
  4. ユーザがページで、フォームの送信など、変更をコミットするアクションを実行します。
  5. コントローラや拡張コードが実行され、変更を Salesforce に保存して、アクションの結果を返します。
  6. Visualforce ページが、JavaScript レスポンスハンドラを使用してアクションの結果を受信し、結果が正常の場合はその応答として、ユーザをアクションの結果を示す新しいページにリダイレクトします。
このシナリオは、Salesforce1 のナビゲーションフレームワークで簡単に処理されます。

もう 1 つの一般的な用途は、単に Salesforce1Visualforce ページから別のページに移動するリンクやその他のユーザインターフェースコントロールをページに追加することです。このナビゲーションも、Salesforce1 のナビゲーションフレームワークで簡単に管理されます。

これらのケースでは、特別ユーティリティ JavaScript オブジェクトである sforce.one でナビゲーションが処理されます。Visualforce ページが Salesforce1 アプリケーション内で実行される場合、sforce.one オブジェクトがすべての Visualforce ページに自動的に追加されます。このオブジェクトには、実行時にナビゲーションイベントをトリガする多数の関数があります。これらの関数を使用するには、ページの JavaScript コードから直接コールするか、コールをクリックハンドラとしてページの要素に追加します。

Visualforce ページを使用した Salesforce1 の拡張で取り上げた FindNearbyWarehousesPage ページの JavaScript 関数を次に示します。この関数は、Google マップに追加するマーカーを作成します。
1function setupMarker(){ 
2
3
4
5    // Use JavaScript nav function to determine if we are
6
7    // in Salesforce1 and set navigation link appropriately
8
9    var warehouseNavUrl = 
10
11        'sforce.one.navigateToSObject(\'' + warehouse.Id + '\')';
12
13
14
15    // Wrap the warehouse details with the link to 
16
17    // navigate to the warehouse details
18
19    var warehouseDetails = 
20
21        '<a href="javascript:' + warehouseNavUrl + '">' + 
22
23        warehouse.Name + '</a><br/>' + 
24
25        warehouse.Street_Address__c + '<br/>' + 
26
27        warehouse.City__c + '<br/>' + 
28
29        warehouse.Phone__c;
30
31   
32
33    // Create a panel that will appear when a marker is clicked
34
35    var infowindow = new google.maps.InfoWindow({ 
36
37        content: warehouseDetails
38
39    });
40
41   
42
43    // ...
44
45}
1 行目は、文字列 warehouseNavUrl を構築します。この文字列が JavaScript URL として使用されると、倉庫の詳細ページに移動します。倉庫名にリンクを作成し、マーカーをクリックしたときに表示される (warehouseDetails 文字列にまとめられた) 情報パネルにこれを表示します。倉庫名をクリックすると、その倉庫の詳細ページに移動します (関数コードの省略された部分は、マーカーを作成して地図に追加する Google Maps API コールに関するものです)。
Salesforce1 内で実行される JavaScript コードまたは HTML マークアップがあるとき��、次の点に留意します。
  • window.location.href を使用して、ブラウザの URL を直接操作しないでください。Salesforce1 のナビゲーション管理システムではこの操作はうまく機能しません。
  • ナビゲーション URL で target="_blank" を使用しないでください。Salesforce1 内で新しいウィンドウを開くことはできません。

Force.com Canvas フレームワーク内の navigation メソッド

Force.com Canvas を使用している場合、Salesforce1 でキャンバスアプリケーションやキャンバス個人用アプリケーションのナビゲーションを制御するシンプルな方法が用意されています。

Force.com のメソッドを使用して、Salesforce1 のナビゲーションを制御できます。Force.com Canvas フレームワーク内のこれらのメソッドは、JavaScript ライブラリにあるイベントです。いずれかの navigation メソッドをキャンバスコードからコールすると、Salesforce1 にイベントが送信されます。Salesforce1 は、このペイロードを読み取って指定の移行先にユーザを移動します。

名前とペイロードを使用して、navigation メソッドをイベント変数として参照します。次に例を示します。

var event = {name:"s1.createRecord", payload: {entityName: "Account", recordTypeId: "00h300000001234"}};

この新しいメソッドの使用についての詳細は、『Force.com Canvas 開発者ガイド』の「キャンバスアプリケーションで使用する Salesforce1 の navigation メソッド」を参照してください。