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

ナビゲーションの管理

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

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

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

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

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

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

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

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

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

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