| Oracle® Fusion Middleware Oracle Application Development Frameworkモバイル開発者ガイド 11g リリース2 (11.1.2.4.0) B70750-02 |
|
![]() 前 |
![]() 次 |
この章では、ADFモバイルJavaScript API拡張機能、ADFモバイル・コンテナ・ユーティリティAPI、およびカスタムHTML SpringboardアプリケーションなどのHTMLアプリケーション機能を対象としたAdfmfJavaUtilities APIの使用方法について説明します。
この章には次の項が含まれます:
JavaScriptを使用してJavaScript API拡張機能をコールすることで、HTMLで作成されたカスタムSpringboardページにナビゲーション機能を追加できます。第5.4.4項「HTMLコンテンツによるカスタムSpringboardアプリケーション機能に関する必知事項」で説明したように、JavaScript <script>タグにメソッドを追加することで、コールバックを有効にしてApache Cordovaを活用できます。例B-1は、このタグを使用したCordovaのコール方法を示しています。
例B-1 HTML Springboardページへの<script>タグの埋込み
...
<script type="text/javascript">if (!window.adf) window.adf = {};
adf.wwwPath = "../../../www/";</script>
<script type="text/javascript" src="../../../www/js/base.js"></script>
...
www/jsディレクトリの場所への相対パスは、常にHTML Springboardページ(またはカスタムHTMLページ)の場所を反映します。HTML Springboardページは、ビュー・コントローラのpublic_htmlディレクトリのルートか、そのサブディレクトリに配置できます。例B-1で、src属性(../../../www/js/base.js)とadf.wwwPath変数によって定義されているパスは、次のように、HTML Springboardファイルがpublic_htmlディレクトリのルートに配置されているときの位置を基準にしています。
JDeveloper\mywork\application name\ViewController\public_html\customspringboard.html
つまり、adf.wwwPath変数には、base.jsと同じ数の../エントリが含まれている必要があります。
public_htmlのサブディレクトリ内にあるSpringboardファイルおよびカスタムHTMLファイルが、ホストされたJavaScriptファイルにアクセスできるようにするには、各サブディレクトリの場所に応じて../エントリを追加することで、相対パスの定義を調整する必要があります。../エントリの数は変化します。これは、デプロイされたwwwディレクトリの場所に相対する、ADFモバイル・アプリケーション内のHTMLページの場所によって異なります。HTMLファイルを、より下のフォルダ階層に移動した場合は、適切な数の../エントリを<script>タグに追加する必要があります。
|
ヒント:
|
|
注意: 設計時にはパスが存在しないので、JavaScriptインクルードは、JDeveloperによってソース・エディタ内ではエラーとして赤い波線で強調表示されます。このパスは実行時に解決されます。 |
Cordova APIに対するADFモバイル拡張機能では、モバイル・デバイスのAPIによってadfmf-feature.xmlおよびadfmf-application.xmlファイルの構成メタデータにアクセスできるようになります。これにより、モバイル・デバイスとADFモバイルのインフラストラクチャ間の通信が確立します。これらの拡張機能は、アプリケーション機能の表示動作も指示します。
|
注意: ADFモバイルではCordova 2.2.0が必要になるため、インストールされているすべてのPhoneGapプラグインをCordova 2.2.0バージョンに移行する必要があります。詳細は、Apache Cordovaのドキュメント( |
デフォルトのADFモバイルSpringboardページ、springboard.amx、およびカスタマイズされたSpringboardの構築に使用できるApplicationFeaturesデータ・コントロールの詳細は、第5.4.5項「ADFモバイルAMXコンテンツによるカスタムSpringboardアプリケーション機能に関する必知事項」を参照してください。
例B-2は、handlePageShownコールバック関数のshowpagecompleteイベントを定義するスクリプトを示しています。カスタムHTMLページ(ログイン・ページなど)では、ADFモバイルによって初めてそのページがロードおよび表示された後、標準的なDOM (Document Object Model)イベント・リスニングを使用してこのイベントをリスニングすることによって、ページに含まれる独自のコードを呼び出すことができます。
例B-2 showpagecompleteイベントの使用方法
<script>
function handlePageShown()
{
console.log("Page is shown!");
}
document.addEventListener("showpagecomplete", handlePageShown, false);
</script>
|
注意:
|
ADFモバイル・コンテナ・ユーティリティAPIのメソッドは、ナビゲーション・バーへの移動、Springboardの表示、アプリケーション機能の表示などの機能をADFモバイル・アプリケーションに提供します。これらのメソッドは、ADFモバイルのJavaおよびJavaScriptレイヤーで使用できます。
Javaでは、コンテナ・ユーティリティAPIは、静的メソッドとしてAdfmfContainerUtilitiesクラスに実装されます。このクラスはoracle.adfmf.framework.apiパッケージにあります。例B-3では、gotoSpringboardメソッドをコールしています。oracle.adfmf.framework.api.AdfmfContainerUtilitiesの詳細は、Oracle Fusion Middleware Oracle ADFモバイルJava APIリファレンスを参照してください。
例B-3 Javaでのコンテナ・ユーティリティAPIのコール
import oracle.adfmf.framework.api.AdfmfContainerUtilities; ... AdfmfContainerUtilities.gotoSpringboard(); ...
JavaとJavaScriptのシグネチャは一致します。Javaでは、シグネチャは同期化され、直接結果が戻されます。JavaScriptは非同期なので、結果を返すsuccessコールバックと、スローされた例外を戻すfailedコールバック2つのコールバック関数が各関数に追加されます。Javaメソッドでは、success値は関数またはメソッドから戻され、例外はメソッドから直接スローされます。例B-4の疑似コードは、引数を使用しないコールpublic static functionName() throwsが、Java内でtryおよびcatchブロックを使用してどのように実行されるかを示しています。
例B-4 Javaでの引数を使用しないコールの実行
...
try {
result = AdfmfContainerUtilities.functionName();
}
catch() {
...
}
...
JavaScriptのコールは非同期なので、関数の実行が完了した時点で、コールバック・メカニズムを通して戻す必要があります。例B-5の疑似コードは、JavaScriptコールのシグネチャを示しています。
例B-5 JavaScriptコールのシグネチャ
adf.mf.api.functionName(
function(req, res) { alert("functionName complete"); },
function(req, res) { alert("functionName failed with " +
adf.mf.util.stringify(res); }
);
例B-5に示されるように、このコールはfunction(request, response)として定義されます。request引数の値は、実際のリクエストです。responseはfunction(request, response)と定義され、この値は実際のリクエストです。レスポンスは関数の実行時にスローされます。
次の疑似コードは、public static <return value> <function name>(<arg0>, <arg1>, ...) throws <exceptions>など、1つ以上の引数を使用するコールが、Java内でtry-catchブロックを使用してどのように実行されるかを示しています。
例B-6 Javaでの複数の引数を使用するコールの実行
try {
result = AdfmfContainerUtilities.<function_name>(<arg0>, <arg1>, ...);
}
catch(<exception>) {
...
}
JavaScriptのコールは非同期なので、結果を戻すことができません。そのかわりに、関数の実行の完了時にコールバック・メカニズムが必要になります。成功および失敗のコールバックのシグネチャは、どちらもfunction(request, response)です。ここでrequest引数は実際のリクエストのJSON表現です。responseはメソッドから戻されたもののJSON表現です(successコールバック関数の場合)。failedコールバック関数の場合は、スローされた例外のJSON表現になります。
|
注意: JavaScriptコールを呼び出して、スタックの深度や競合状態などの問題を回避するには、その前にコールバック関数を呼び出す必要があります。 |
コンテナ・ユーティリティAPIでは、次のメソッドが提供されます。
checkforNewConfiguration: ホストされたconnections.xmlファイル内の変更をチェックします。
getApplicationInformation: ADFモバイル・アプリケーションのメタデータを取得します。
gotoDefaultFeature: デフォルトのアプリケーション機能を表示します。
getFeatures: アプリケーション機能を取得します。
gotoFeature: 特定のアプリケーション機能を表示します。
getFeatureByName: アプリケーション機能の名前を使用して、アプリケーション機能に関する情報を取得します。
getFeatureById: IDを使用してアプリケーション機能を取得します。
resetFeature: アプリケーション機能をロード時の状態にリセットします。
gotoSpringboard: Springboardを表示します。
hideNavigationBar: ナビゲーション・バーを非表示にします。
showNavigationBar: ナビゲーション・バーを表示します。
invokeMethod: Javaメソッドを起動します。
invokeContainerJavaScriptFunction: JavaScriptメソッドを起動します。
コンテナ・ユーティリティAPIには、アプリケーションにバッジおよびバッジ番号を設定するためのメソッドが含まれています。詳細は、第B.2.16項「アプリケーション・アイコンへのバッジ設定」を参照してください。
構成サービスの使用時に、このメソッドは、構成済のエンドポイントに対する変更がないか、connections.xmlファイルをホストするサーバーをチェックするように、ADFモバイルにリクエストします。変更をチェックするために、ADFモバイルは、サーバー上でホストされる接続関連のコンテンツとデバイス上の構成を比較します。(この比較は、バックグラウンドで非同期に実行されます)。ADFモバイルが、デバイス構成が古くなっているのを検出したら、checkforNewConfigurationメソッドによって、新しい構成が検出されたのでアプリケーションを閉じることをユーザーに通知する、非ブロッキング・コールが発行されます。ADFモバイルはユーザーにアプリケーションの再起動を促します。
Javaでは、このメソッドは次のようになります。
public static void checkForNewConfiguration()
throws oracle.adfmf.framework.exception.AdfException
例B-7は、このメソッドの使用方法を示しています。
例B-7 Javaを使用した構成情報の取得
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
AdfmfContainerUtilities.checkForNewConfiguration();
}catch(AdfException e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void checkForNewConfiguration(success, failed)
successコールバックはfunction(request, response)という形式にする必要があります。このrequest引数には元のリクエストが格納され、response引数には関連するAdfmfContainerUtilitiesメソッドの戻り値(void)が格納されます。failedコールバックはfunction(request, response)という形式にする必要があります。このrequest引数には元のリクエストが格納され、response引数にはエラー(AdfException)が格納されます。
例B-8は、これらのコールバック関数を使用して構成情報を取得する方法を示しています。
このメソッドは、アプリケーションに関する情報を格納したApplicationInformationオブジェクトを戻します。このメソッドでは、アプリケーションID、アプリケーション名、バージョン、アプリケーションのベンダーといったメタデータが戻されます。
Javaでは、このメソッドは次のようにコールされます。
public static oracle.adfmf.framework.ApplicationInformation
getApplicationInformation()
throws oracle.adfmf.framework.exception.AdfException
例B-9は、このメソッドのコール方法を示しています。
例B-9 Javaを使用したアプリケーション情報の取得
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
ApplicationInformation[] ai = AdfmfContainerUtilities.getApplicationInformation();
String applicationId = ai.getid();
String applicationName = ai.getName();
String vendor = ai.getVendor();
String version = ai.getVersion();
...
}catch(AdfException e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void getApplicationInformation(success, failed)
successコールバックはfunction(request, response)という形式にする必要があります。このrequest引数には元のリクエストが格納され、response引数には関連するAdfmfContainerUtilitiesメソッドの戻り値が格納されます。この戻り値は、アプリケーション・レベルのメタデータを格納するApplicatiaonInformationオブジェクトです。ここには、アプリケーション名、ベンダー、バージョンおよびアプリケーションIDが含まれます。
failedコールバックはfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-10は、これらのコールバック関数を使用してアプリケーション情報を取得する方法を示しています。
このメソッドは、ADFモバイルがデフォルトのアプリケーション機能を表示するようにリクエストします。デフォルトのアプリケーション機能とは、ADFモバイル・アプリケーションの起動時に表示されるアプリケーション機能です。
|
注意: 認証関連または許可関連の問題が発生している場合、このメソッドではアプリケーション機能を表示できないことがあります。 |
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void gotoDefaultFeature(success, failed)
successコールバック関数はfunction(request, response)という形式にする必要があります。このrequest引数には元のリクエストが格納され、response引数には関連するAdfmfContainerUtilitiesメソッドの戻り値(void)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequest引数には元のリクエストが格納され、response引数にはエラーが格納されます。
例B-11は、これらのコールバック関数を使用してデフォルトのアプリケーション機能をコールする方法を示しています。
このメソッドは、使用可能なアプリケーション機能を表すFeatureInformationオブジェクトの配列を戻します。戻されるメタデータには、機能ID、アプリケーション機能名およびアプリケーション・アイコンに使用するイメージ・ファイルの場所が含まれます。このコールにより、カスタムSpringboardの実装は、制約の適用後に使用可能になるアプリケーション機能のリストにアクセスできるようになります。(これらのアプリケーション機能もデフォルトのSpringboardに表示されることがあります。)
Javaでは、このメソッドは次のようにコールされます。
public static oracle.adfmf.framework.FeatureInformation[] getFeatures()
throws oracle.adfmf.framework.exception.AdfException
例B-12は、このメソッドの使用方法を示しています。
例B-12 Javaを使用したアプリケーション機能情報の取得
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
FeatureInformation[] fia = null;
fia = AdfmfContainerUtilities.getFeatures();
for(int f = 0; f < fia.length; ++f) {
FeatureInformation fi = fia[i];
String featureId = fi.getId();
String featureName = fi.getName();
String featureIconPath = = fi.getIcon();
String featureImagePath = fi.getImage();
...
}
}catch(AdfException e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void getFeatures(success, failed)
successコールバック関数はfunction(request, response)という形式にする必要があります。このrequest引数には元のリクエストが格納され、response引数には関連するAdfmfContainerUtilitiesメソッドの戻り値(FeatureInformationオブジェクトの配列)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequest引数には元のリクエストが格納され、response引数にはエラー(AdfException)が格納されます。
このメソッドは、ADFモバイルが、IDによって識別されたアプリケーション機能を表示するようにリクエストします。
|
注意: 認証関連または許可関連の問題が発生している場合、このメソッドではアプリケーション機能を表示できないことがあります。 |
Javaでは、このメソッドは次のようにコールされます。
public static void gotoFeature(java.lang.String featureId)
throws oracle.adfmf.framework.exception.AdfException
例B-14に示すように、このメソッドのパラメータはアプリケーション機能のIDです。
例B-14 アプリケーション機能のアクティブ化
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
AdfmfContainerUtilities.gotoFeature("feature.id");
}catch(AdfException e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void gotoFeature(featureId, success, failed)
featureIdパラメータは、アプリケーション機能IDです。このパラメータはsuccessコールバック関数をアクティブ化します。このコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するAdfmfContainerUtilitiesメソッドの戻り値(void)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-15は、これらのコールバック関数を使用してアプリケーション機能をコールする方法を示しています。
このメソッドは、渡されたアプリケーション機能の名前を使用して、アプリケーション機能に関する情報を戻します。
Javaでは、このメソッドは次のようにコールされます。
public static oracle.adfmf.framework.FeatureInformation getFeatureByName(java.lang.String featureName)
throws oracle.adfmf.framework.exception.AdfException
例B-16に示すように、このメソッドのパラメータはアプリケーション機能の名前です。
例B-16 アプリケーション機能名を使用したアプリケーション機能情報の取得
...
try {
FeatureInformation fi = AdfmfContainerUtilities.getFeatureByName("feature.name");
String featureId = fi.getId();
String featureName = fi.getName();
String featureIconPath = = fi.getIcon();
String featureImagePath = fi.getImage();
}catch(AdfException e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void getFeatureByName(featureName, success, failed)
featureNameパラメータは、アプリケーション機能の名前です。successコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するAdfmfContainerUtilitiesメソッドの戻り値(void)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-17は、これらのコールバック関数の使用方法を示しています。
このメソッドは、アプリケーションIDを使用してアプリケーション機能を取得します。
Javaでは、このメソッドは次のようにコールされます。
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
例B-18に示すように、このメソッドのパラメータはアプリケーション機能のIDです。
例B-18 JavaでのIDを使用したアプリケーション機能の取得
try {
FeatureInformation fi =AdfmfContainerUtilities.getFeatureById("feature.id");
}catch(AdfException e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void getFeatureById(featureId, success, failed)
featureIdパラメータは、アプリケーション機能のIDです。successコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するAdfmfContainerUtilitiesメソッドの戻り値(void)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-19は、これらのコールバック関数を使用してアプリケーション機能を取得する方法を示しています。
このメソッドは、アプリケーション機能の状態をリセットします。このメソッドでは、アプリケーション機能のJava側のモデルをリセットして、ADFモバイル・アプリケーションがロードされ、最初にアプリケーション機能が表示されたときのようにユーザー・インタフェース・プレゼンテーションを再起動します。
Javaでは、このメソッドは次のようにコールされます。
public static void resetFeature(java.lang.String featureId)
throws oracle.adfmf.framework.exception.AdfException
例B-20に示すように、このメソッドのパラメータはリセットされるアプリケーション機能のIDです。
例B-20 Javaでのアプリケーション機能のリセット
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
AdfmfContainerUtilities.resetFeature("feature.id");
}catch(AdfException e) {
// handle the exception
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void resetFeature(featureId, success, failed)
successコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するメソッドの戻り値(アプリケーション機能のID)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-21は、これらのコールバック関数を使用してアプリケーション機能をコールする方法を示しています。
このメソッドは、ADFモバイルがSpringboardをアクティブ化するようにリクエストします。
|
注意:
|
Javaでは、このメソッドは次のようにコールされます。
public static void gotoSpringboard()
例B-22は、このメソッドの使用方法を示しています。
例B-22 JavaでのSpringboardのアクティブ化
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
AdfmfContainerUtilities.gotoSpringboard();
}catch(AdfException e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void gotoSpringboard(success, failed)
successコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するメソッドの戻り値(void)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-23は、これらのコールバック関数の使用方法を示しています。
このメソッドは、ADFモバイルがナビゲーション・バーを非表示にするようにリクエストします。
Javaでは、このメソッドは次のようにコールされます。
public static void hideNavigationBar()
例B-24は、このメソッドの使用方法を示しています。
例B-24 Javaでのナビゲーション・バーの非表示化
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
AdfmfContainerUtilities.hideNavigationBar();
}catch(Exception e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void hideNavigationBar(success, failed)
successコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するメソッドの戻り値(void)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-25は、これらのコールバック関数の使用方法を示しています。
このメソッドは、ADFモバイルがナビゲーション・バーを表示するようにリクエストします。
Javaでは、このメソッドは次のようにコールされます。
public static void showNavigationBar()
例B-26は、このメソッドの使用方法を示しています。
例B-26 Javaでのナビゲーション・バーの表示
import oracle.adfmf.framework.api.AdfmfContainerUtilties;
...
try {
AdfmfContainerUtilities.showNavigationBar();
}catch(Exception e) {
// handle the exception
}
JavaScriptでは、次のように、successおよびfailedコールバック関数によって、戻り値と例外をJavaScriptのコール元コードに戻すことができます。
public void showNavigationBar(success, failed)
successコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するメソッドの戻り値(void)が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
例B-27は、これらのコールバック関数の使用方法を示しています。
このメソッドは、Javaでは提供されません。例B-28は、JavaScriptのコールバック・メソッドを使用して、クラスパスに含まれる任意のクラスからJavaメソッドを起動する方法を示しています。
例B-28 JavaScriptのコールバック関数を使用してJavaメソッドをコールする方法
adf.mf.api.invokeMethod(classname,
methodname,
param1,
param2,
...
paramN,
successCallback,
failedCallback);
表B-1に、このメソッドによって取得されるパラメータを示します。
表B-1 invokeJavaMethodに渡されるパラメータ
| パラメータ | 説明 |
|---|---|
|
|
Javaメソッドのコール時にADFモバイルがインスタンスを作成するために使用するクラス名(パッケージ情報を含む) |
|
|
|
successコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseには関連するメソッドの戻り値が格納されます。
failedコールバック関数はfunction(request, response)という形式にする必要があります。このrequestには元のリクエストが格納され、responseにはエラーが格納されます。
複数のパラメータによるこのメソッドの使用例は次のとおりです。
adf.mf.api.invokeMethod("TestBean", "setStringProp", "foo", success, failed);
adf.mf.api.invokeMethod("TestBean", "getStringProp", success, failed);
整数パラメータの使用例は次のとおりです。
adf.mf.api.invokeMethod("TestBean", "testSimpleIntMethod", "101", success, failed);
複合パラメータの使用方法は次のとおりです。
adf.mf.api.invokeMethod("TestBean", "testComplexMethod",
{"foo":"newfoo","baz":"newbaz",".type":"TestBeanComplexSubType"}, success, failed);
パラメータが存在しない場合の使用方法は次のとおりです。
adf.mf.api.invokeMethod("TestBean", "getComplexColl", success, failed);
Stringパラメータの使用方法は次のとおりです。
adf.mf.api.invokeMethod("TestBean", "testMethodStringStringString", "Hello ", "World", success, failed);
invokeContainerJascriptFunctionは、JavaScriptメソッドを起動します。表B-2に、このメソッドによって渡されるパラメータを示します。
表B-2 invokeContainerJavaScriptFunctionに渡されるパラメータ
| パラメータ | 説明 |
|---|---|
|
|
JavaScriptの起動コンテキストを決定するためにADFモバイルによって使用されるアプリケーション機能のID。このIDによって、このメソッドがコールされるWebビューが決まります。 |
|
|
起動させるメソッドの名前。 |
|
|
メソッドに渡される引数の配列。この配列内で、これらの引数はメソッドが期待する順序で並べられます。 |
このメソッドは、JSONオブジェクトを戻します。
|
注意:
|
例B-29 invokeContainerJavaScriptFunctionメソッド
public static java.lang.Object invokeContainerJavaScriptFunction(java.lang.String featureId,
java.lang.Object[] args)
throws oracle.adfmf.framework.exception.AdfException
例B-30の疑似コードは、feature1という名前のアプリケーション機能に含まれるappFunctions.jsという名前のJavaScriptファイルを示しています。このファイル内で記述されているJavaScriptメソッド、application.testFunctionは、invokeContainerJavaScriptFunction methodによってコールされます(例B-31を参照)。アプリケーションには、この関数をコールするアクション・リスナーで構成されるコマンド・ボタンが含まれているので、ユーザーがこのボタンをクリックすると、次のようなアラートが表示されます。
APP ALERT 0
APP ALERT 1
APP ALERT 2
例B-30 appFunctions.js
(function()
{
if (!window.application) window.application = {};
application.testFunction = function()
{
var args = arguments;
alert("APP ALERT " + args.length + " ");
return "application.testFunction - passed";
};
})();
例B-31の疑似コードは、invokeApplicationJavaScriptFunctionメソッドによって、例B-30で記述されているJavaScriptメソッド(application.testFunction)をコールする方法を示しています。
例B-31 JavaでのJavaScript関数のコール
invokeApplicationJavaScriptFuntions
public void invokeApplicationJavaScriptFuntions(ActionEvent actionEvent) {
AdfmfContainerUtilities.invokeContainerJavaScriptFunction("feature1",
"application.testFunction",
new Object[] {} );
AdfmfContainerUtilities.invokeContainerJavaScriptFunction("feature1",
"application.testFunction",
new Object[] {"P1"} );
AdfmfContainerUtilities.invokeContainerJavaScriptFunction("feature1",
"application.testFunction",
new Object[] {"P1", "P2"} );
}
詳細は、Oracle Fusion Middleware Oracle ADFモバイルJava APIリファレンスを参照してください。
AdfmfContainerUtilitiesクラスには、ADFモバイル・アプリケーション・アイコンにバッジ番号を設定したり、その番号を取得するためのメソッドが含まれています。表B-3に、これらのメソッドを示します。
表B-3 アイコンへのバッジ設定メソッド
| メソッド | 説明 | パラメータ |
|---|---|---|
|
|
ADFモバイル・アプリケーションのアイコンに現在設定されているバッジの値を取得します。アプリケーション・アイコンにバッジが設定されていない場合は、ゼロ(0)を戻します。 |
なし |
|
|
ADFモバイル・アプリケーションのアイコンにバッジ番号を設定します。 |
バッジの値( |
|
注意: アプリケーション・アイコンへのバッジ設定は、Androidではサポートされていません。 |
adfmfJavaUtilties APIには、getDirectoryPathRootメソッドが含まれています。このメソッドはJavaレイヤーからのみコールでき、iOSシステムとAndroidシステムの両方にあるファイルへのアクセスを可能にします。例B-32に示すように、このメソッドを使用すると、デバイス上の一時ファイル、アプリケーション・ファイル(iOS上)およびキャッシュ・ディレクトリの場所に、TemporaryDirectory、ApplicationDirectoryおよびDeviceOnlyDirectory定数を使用してそれぞれアクセスできます。DeviceOnlyDirectoryの場所に格納されたファイルは、デバイスの接続時には同期されません。
|
注意: アプリケーションからディレクトリまたはファイルへのアクセスを試みる前に、それらのディレクトリまたはファイルが存在することを確認してください。 |
oracle.adfmf.framework.api.AdfmfJavaUtilitiesの詳細は、Oracle Fusion Middleware Oracle ADFモバイルJava APIリファレンスを参照してください。
例B-32 ファイルへのアクセス
import oracle.adfmf.framework.api.AdfmfJavaUtilities;
...
public void getDirectoryPathRoot()
{
// returns the directory for storing temporary files
String tempDir =
AdfmfJavaUtilities.getDirectoryPathRoot(AdfmfJavaUtilities.TemporaryDirectory);
// returns the directory for storing application files
String appDir =
AdfmfJavaUtilities.getDirectoryPathRoot(AdfmfJavaUtilities.ApplicationDirectory);
// returns the directory for storing cache files
String deviceDir =
AdfmfJavaUtilities.getDirectoryPathRoot(AdfmfJavaUtilities.DeviceOnlyDirectory);
// returns the directory for storing downloaded files
AdfmfJavaUtilities.getDirectoryPathRoot(AdfmfJavaUtilities.DownloadDirectory);
}
ファイル記憶域の要件は、プラットフォームによって異なります。Androidプラットフォームでは、アプリケーションからファイルへのアクセス元となる単一の場所が規定されていません。そのかわり、アプリケーションでは、権限が付与された任意の場所にファイルを書き込むことができます。一方、iOSプラットフォームでは通常、アプリケーション・ディレクトリ内にファイルを格納します。このような違いにより、ApplicationDirectoryをgetDirectoryPathRootメソッドに渡すと、AndroidデバイスではなくiOSデバイス上で実行されているアプリケーションの添付ファイルを表示するために必要なファイルの場所を戻すことができます。アプリケーションをiOSデバイスとAndroidデバイスの両方で実行する場合、プラットフォーム固有のコードを記述してこれらの場所を取得するのではなく、getDirectoryPathRootメソッドにDownloadDirectoryを渡すことによって、外部記憶域の場所とデフォルトの添付ファイル・ディレクトリへのパスを両方戻すことができます。この定数(列挙型)には、DeviceManager APIのdisplayFileメソッドで使用する場所が反映されます。このメソッドでは、プラットフォーム固有の機能を使用してこれらの場所を検索することによって、添付ファイルを表示します。
Androidの場合、DownloadDirectoryでは、Environment.getExternalStorageDirectoryメソッド(SDカードなどのAndroid用外部記憶域ディレクトリを取得する)によって戻されるパスを参照します。iOSデバイス上で実行されるADFモバイル・アプリケーションの場合は、ApplicationDirectoryと同じ場所が戻されます。getExternalStorageDirectoryの詳細は、Android開発者のWebサイト(http://developer.android.com/reference/packages.html)で入手できる、パッケージのリファレンス・ドキュメントを参照してください。また、iOS Developer Library (http://developer.apple.com/library/ios/navigation/)で入手できる『Files System Programming Guide』も参照してください。