Oracle® Fusion Middleware Oracle Application Development Frameworkモバイル開発者ガイド 11g リリース2 (11.1.2.3.0) B70750-01 |
|
前 |
次 |
この付録では、デプロイメント時、ADFモバイルがどのようにユーザー・プリファレンスを変換するかについて説明します。
このドキュメントには次の項が含まれます。
デプロイメント・ターゲットが呼び出されると、ADFモバイル・アプリケーション・プリファレンスの、モバイル・プラットフォーム表現への変換が行われます。変換後、表B-1で説明されているネーミング・パターンにより、モバイル・プラットフォーム上で各プリファレンスを一意に識別できるようになります。adfmf-application.xml
およびadfmf-feature.xml
ファイル内の各プリファレンス要素は、デプロイメントの前に、その兄弟要素の範囲内で一意に識別される必要があります。
識別子値の例は、次のとおりです。
application.gen.gps.trackGPS
feature.f0.gen.gps.trackGPS
表B-1は、完全修飾されたプリファレンス識別子の生成方法を示しています。
表B-1 プリファレンスに対するADFモバイルのネーミング・パターン
Expression | 説明 | Syntax |
---|---|---|
|
モバイル・プラットフォーム表現に変換されたプリファレンス要素の識別子値を表します。 |
|
|
|
<adfmf:preferences> <adfmf:preferenceGroup id="gen"> <adfmf:preferenceGroup id="gps"> <!-- The mobile-platform identifier would be "application.gen.gps.trackGPS" --> <adfmf:preferenceBoolean id="trackGPS"/> </adfmf:preferenceGroup> </adfmf:preferenceGroup> </adfmf:preferences> |
|
|
<adfmf:feature id="f0"> <adfmf:preferences> <adfmf:preferenceGroup id="gen"> <adfmf:preferenceGroup id="gps"> <!-- The mobile-platform identifier would be "feature.f0.gen.gps.trackGPS" --> <adfmf:preferenceBoolean id="trackGPS"/> </adfmf:preferenceGroup> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature> |
表B-1のコード例で引用されている<adfmf:preferences>
要素にはid
属性がなく、そのため、これはどのプリファレンス識別子でも表されません。
ADFモバイルのデプロイメントでは、XMLとXLSを使用して、アプリケーション機能とADFモバイル・アプリケーション・レベルの両方で定義されているユーザー・プリファレンス・ページを、次の3つのXMLドキュメントに変換します。
preferences.xml
arrays.xml
strings.xml
このファイルには、adfmf-feature.xml
とadfmf-application.xml
の両方のファイルからの変換済のプリファレンスが含まれています。
表B-2は、ADFモバイルのプリファレンス定義の、Androidテンプレート・プリファレンスおよびAndroidネイティブ・プリファレンスへのマッピングを示しています。
表B-2 ADFモバイル・プリファレンスの、Androidプリファレンスへのマッピング
ADFモバイル・プリファレンス定義 | テンプレート・カスタムまたはAndroidネイティブ・プリファレンス定義(デプロイメントで使用される) | Androidネイティブ・プリファレンス定義(デプロイメントで使用されない) |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Preferences.xml
ファイルには、strings.xml
とarrays.xml
の両方に格納されている文字列リソースへの参照が含まれています。Android SDKでは、XMLファイル内のリソースの構文を@[<package_name>:]<resource_type>/<resource_name>と定義しています。このファイルには、文字列値への参照だけでなく、リスト・プリファレンスの名前と値のペアも含まれています。XSLは、文字列とリスト・プリファレンスに対して次のものを作成します。
<package_name>
は、リソースが存在するパッケージの名前です(同じパッケージのリソースを参照するときは必要ありません)。参照のこのコンポーネントは使用されません。
<resource_type>
は、リソース・タイプのRサブクラスです。このコンポーネントは、文字列参照の作成時はstring
、リスト・プリファレンスの作成時はarray
の値を持ちます。
<resource_name>
は、XML要素内のandroid:name
属性値です。android:title
属性を指定する場合、このコンポーネントの値は、<PreferenceIdentifier>_title
になります(<PreferenceIdentifier>
の定義については、第B.1項「プリファレンスのネーミング・パターン」を参照してください)。
表B-3と表B-4は、特定のADFモバイル・プリファレンスに対するADFモバイル属性の、Androidプリファレンスへのマッピングを示しています。
この表では、
{X}というフォームのエントリ(表B-3の{default}
など)は、Xという名前のADFモバイル属性の値を示しています。
<PreferenceIdentifier>
があるエントリは、第B.1項「プリファレンスのネーミング・パターン」で説明されているとおり、プリファレンス識別子の値を示しています。
アスタリスク(*)が付いている属性は、ADFモバイルの名前空間で定義されているカスタムのテンプレート属性であり、preferences.xml
にadfmf:<attributeName>
というフォームで存在している必要があります。それ以外の属性は、Androidの名前空間の一部であり、preferences.xml
にandroid:<attributeName>
として存在している必要があります。
表B-3 ADFモバイル・プリファレンス属性の、Androidプリファレンスへのマッピング
ADFモバイル属性定義 | テンプレート・カスタムまたはAndroidネイティブ・プリファレンス属性 | Android属性値 | 適用対象 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
指定された |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
次の場合、adfmf-application.xml
およびadfmf-feature.xml
ファイル用の概要エディタでは、XMLからの属性名と値は除外されます。
属性タイプがxsd:boolean
である。
属性値に<default>
値オプションがある。
ユーザーが値として<default>
を指定している。
XSLは、ブール・タイプのADFモバイル属性と、対応するデフォルト値を認識している必要があります。XSLはその後、適切なAndroidまたはテンプレート・カスタム属性値を指定します(ユーザーによって選択された場合)。
表B-4は、変換されるADFモバイル・プリファレンスにdefault
属性が含まれていない場合に、デプロイメントでandroid:defaultValue
属性に対して指定されるものを示しています。
preferences.xml
には、<PreferenceScreen>
要素と呼ばれるルート要素があります。Androidテンプレートでは、この要素に次のXML名前空間定義が存在している必要があります。
xmlns:adfmf="http://schemas.android.com/apk/res/<Application Package Name>
ここで、<Application Package Name>
は、AndroidManifest.xml
ファイル内にあるものと同じアプリケーション・パッケージ名です。<Android Package Name>
は、AndroidManifest.xml
で指定されているAndroidパッケージ名を定義します。詳細は、第5.3.1項「モバイル・アプリケーションのIDおよび表示動作の設定方法」を参照してください。
デプロイメントでは、Androidデプロイメント・プロファイルのアプリケーション・バンドルID値が使用されます(存在する場合)。プロファイルにアプリケーション・バンドルID値が存在しない場合は、adfmf-application.xml
ファイルに含まれているアプリケーションの表示名およびアプリケーションIDからこの値が取得されます。デプロイメントJavaコードは、この値をXSLドキュメントにパラメータとして渡します。
例B-1は、adfmf-feature.xml
ファイルに含まれているADFモバイル・プリファレンスを示しています。例B-1は、対応するpreferences.xml
ファイルを示しています。
例B-1 adfmf-feature.xmlファイルで定義されているプリファレンス
<?xml version="1.0" encoding="UTF-8" ?> <adfmf:features xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xmlns:adfmf="http://xmlns.oracle.com/jdev/adfmf"> <adfmf:feature id="oracle.hello" name="Hello" icon="oracle.hello/navbar-icon.png" image="oracle.hello/springboard-icon.png"> <adfmf:content id="Hello.Generic"> <adfmf:localHTML url="oracle.hello/index.html"/> </adfmf:content> <adfmf:preferences> <adfmf:preferenceGroup id="prefGroup" label="preference group"> <adfmf:preferenceBoolean id="boolPref" label="boolPref perference" default="true"/> <adfmf:preferenceNumber id="numPref" label="numPref preference" default="1" min="1" max="10"/> <adfmf:preferenceText id="textPref" label="textPref preferences" default="Foo"/> <adfmf:preferenceList id="listPref" label="listPref preference" default="value2"> <adfmf:preferenceValue name="name1" value="value1"/> <adfmf:preferenceValue name="name2" value="value2"/> </adfmf:preferenceList> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature> </adfmf:features>
このファイルは、preferences.xml
ファイルから参照されるリスト・プリファレンスの名前と値を列挙する文字列配列要素で構成されています。adfmf-application.xml
およびadfmf-feature.xml
ファイルに含まれている各<preferenceList>
は、2つの文字列配列要素(1つは名前用、もう1つは値用)に変換されます。たとえば、例B-2に記載されているADFモバイルのpreferenceList
定義は、例B-3に示されているように、arrays.xml
ファイル内の<string-array name="feature.oracle.hello.prefGroup.MyList___entry_values">
および<string-array name="feature.oracle.hello.prefGroup.MyList___entries">
に変換されます。
例B-2 adfmf-feature.xmlファイルにおけるPreferenceList定義
<adfmf:features xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/jdev/adfmf"> <adfmf:feature id="oracle.hello" name="Hello" icon="oracle.hello/navbar-icon.png" image="oracle.hello/springboard-icon.png"> ... <adfmf:preferences> <adfmf:preferenceGroup id="prefGroup"> <adfmf:preferenceList id="MyList" label="My List"> <adfmf:preferenceValue name="name1" value="value1"/> <adfmf:preferenceValue name="name2" value="value2"/> <adfmf:preferenceValue name="name3" value="value3"/> </adfmf:preferenceList> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature> ...
例B-3 arrays.xmlにおける、<string-array>要素に変換されたプリファレンス・リスト
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:adfmf="http://schemas.android.com/apk/res/oracle.myandroidapp"> <string-array name="feature_oracle_hello_prefGroup.MyList___entry_values"> <item>name1</item> <item>name2</item> <item>name3</item> </string-array> <string-array name="feature_oracle_hello_prefGroup.MyList___entries"> <item>value1</item> <item>value2</item> <item>value3</item> </string-array> </resources>
例B-4は、preferences.xml
で参照されている<string-arrays>
を示しています。
例B-4 preferences.xmlファイルからのPreferenceList参照
<oracle.adfmf.preferences.AdfMFPreferenceList android:key="feature.oracle.hello.MyList" android:title="@string/feature_oracle_hello_prefGroup.MyList___title" android:entries="@array/feature_oracle_hello_prefGroup.MyList___entries" android:entryValues="@array/feature_oracle_hello_prefGroup.MyList___entry_values" />
例B-5で示されているstrings.xml
ファイルは、preferences.xml
ファイルによって参照される文字列要素、およびadfmf-application.xml
およびadfmf-feature.xml
ファイルで定義されているリソース・バンドル参照で構成されています。各文字列要素には、文字列および文字列値を一意に識別するname
属性があります。
例B-5 strings.xmlファイル
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:adfmf="http://schemas.android.com/apk/res/oracle.myandroidapp"> ... <string name="feature.PROD.bundle.FeatureName">Products</string> <string name="feature.oracle.hello.prefGroup.MyBooleanPreference___title">My feature boolean pref</string> ... </resources>
文字列のソースがリソース・バンドル文字列への参照でない場合、name
属性のネーミング規則は<PreferenceIdentifier>___<androidAttributeName>
です。
例B-6 adfmf-feature.xmlファイルで定義されているリソース・バンドル参照
<adfmf:features xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:adfmf="http://xmlns.oracle.com/jdev/adfmf"> <adfmf:loadBundle basename="mobile.ViewControllerBundle" var="bundle"/> <adfmf:feature id="oracle.hello" name="Hello" icon="oracle.hello/navbar-icon.png" image="oracle.hello/springboard-icon.png"> <adfmf:feature id="PROD" name="#{bundle.FeatureName}" icon="openMore.png" image="G.png" credentials="none"> ... <adfmf:preferences> <adfmf:preferenceGroup id="prefGroup"> <adfmf:preferenceBoolean default="true" id="MyBooleanPreference" label="My feature boolean pref"/> </adfmf:preferenceGroup> </adfmf:preferences> </adfmf:feature>
iOSデプロイヤは、表B-4に記載されているADFモバイル・プリファレンスを、iOS Settingsアプリケーションで必要なプリファレンス・リスト(.plist
)ファイル表現に変換します。
表B-5 ADFモバイル・プリファレンスと、対応するiOS表現
ADFモバイル・プリファレンス・コンポーネント | iOS表現 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
プリファレンス・リスト(.plist
)ファイルのiOS要件については、iOS Developer Library (http://developer.apple.com/library/ios/navigation/
)にある『iOS Application Programming Guide』の「Implementing Application Preferences」を参照してください。
例B-7は、ADFモバイル・プリファレンスのスタンザを示しています。