Mobilityフレームワークの詳細は、次の項を参照してください。
Mobilityフレームワークを構成するには、サイト・ナビゲーションやテンプレートなど、WebCenter Sitesのコア機能の使用経験が必要です。また、モバイル・デバイスおよびそのユーザー・エージェントに対する理解が必要です。
WebCenter Sitesは、組込みのデバイス検出メカニズムを使用して、Webサイトのコンテンツを要求するデバイスを識別します。デバイスが識別されると、WebCenter Sitesは適切なサイト・ナビゲーション(以前のリリースではサイト・ナビゲーションと呼ばれていました)を検索し、適切なテンプレートを呼び出してWebサイトをレンダリングします。
このデバイス検出プロセスのメカニズムには、デバイス・リポジトリ、デバイス・グループおよび接尾辞、デバイス・アセット、テンプレート・バリアント、サイト・ナビゲーション(モバイルWebサイトをサポートできるように拡張されている)などの新機能が関係しています。この項では、これらの新機能の背後にある概念について説明します。その後、モバイルWebサイトをサポートする機能の構成手順も示します。
機能が構成されたら、Oracle WebCenter Sites: Contributorインタフェースで、図26-1に示すようなモバイル・サイトを作成、プレビューおよび配信できます。この図では、avisportsサンプル・サイトのホームページが、3つのデバイスのコンテキストで表示されます(マルチデバイス・プレビュー)。
図26-1 Contributorインタフェースの複数デバイスのコンテキストのavisportサイト・ホームページのプレビュー

この項には次のトピックが含まれます:
デバイス・リポジトリは、WebCenter Sitesでモバイル・デバイスの検出に使用するファイルです。デバイス・リポジトリには、デバイスのプロパティが含まれ、そのユーザー・エージェントに基づいて各デバイスを一意に識別します。WebCenter Sitesは、デバイス・リポジトリで指定されるユーザー・エージェントにデバイスのユーザー・エージェントを一致させることにより、デバイスを検出します。
注意:
ユーザー・エージェントは、ユーザーの代理として機能するソフトウェア・エージェントです。ユーザー・エージェント文字列のフォーマットは、オプションのコメントを持つ製品トークン(キーワード)のリストです。ほとんどのブラウザは、次のフォーマットを指定します。
Mozilla[version] (system and browser information]) [ platform] ([platform details]) [extensions]
次に例を示します。
Mozilla/so(iPad;u;CPUOS 3.2.1 like Mac OSx;en-us)ppleWebkit/531.21.10(KHTML,like Gecko) Mobile/7B405
次の2つのタイプのデバイス・リポジトリがあります。
devices.xml: これは、WebCenter Sitesに含まれているデフォルトのリポジトリです。このリポジトリは、製品リリース時に更新され、ポピュラーなデバイスのみが含まれています。必要に応じて、このリポジトリにデータを追加できます。
WURFL: これは、ScientiaMobileのサード・パーティ・デバイス情報データベースです。WURFLはdevices.xmlよりも包括的で、ScientiaMobileによって定期的にアップデートされます。WURFLを使用して、常に最新のデバイスを保持することをお薦めします。ライセンス・コピーは、ScientiaMobileから取得できます。WebCenter Sitesには組み込まれていません。
デバイス・リポジトリの使用手順については、「デバイス・リポジトリの構成方法」を参照してください。
デバイス・グループでは、デバイスの機能ベースのグループ化が可能です。デバイス・グループは、共通のWebサイトが配信可能な、共通の特徴を持つデバイスのコレクションを定義するアセットです。たとえば、図26-2 に示すように、すべてのタッチフォンはあるグループに属することができ、ノンタッチ(QWERTY)フォンは別のグループに属することができます。このため、1つのWebサイトがすべてのタッチ・デバイスに配信されます。また、別のWebサイトがすべてのノンタッチ(QWERTY)デバイスに配信されます。そのため、2セットのテンプレートをコーディングする必要があります。1セットはタッチ・デバイス・グループ用で、もう1セットはノンタッチ・デバイス・グループ用です。
テンプレート・バリアントをサポートするために、接頭辞の概念が導入されています。接尾辞は、正しいデバイス・グループにテンプレートを関連付けるために使用します。テンプレートおよびデバイス・グループが、_Touch(または_NonTouch)などの、同じ接尾辞を持つ場合に関連付けが行われます。たとえば、基本テンプレートHomeLayoutがデスクトップWebサイトのレンダリングに使用される場合は、テンプレートのバリアント、つまり、HomeLayout_suffixという名前のテンプレートを作成します。この例では、タッチ・デバイス・グループ内のデバイスのコンテンツをレンダリングするためにHomeLayout_Touchテンプレートを作成します。また、ノンタッチ・デバイス・グループ内のデバイスのコンテンツをレンダリングするためにHomeLayout_NonTouchテンプレートも作成します。
実行時に、WebCenter Sitesは、テンプレート・バリアントの名前に対してデバイス・グループの接頭辞を照合します。タッチ・デバイスからHomeLayoutがリクエストされると、WebCenter Sitesは、HomeLayout_Touchテンプレートを使用してWebサイトをレンダリングします。これはデバイス検出の一環です。
注意:
接尾辞のないテンプレートは、基本テンプレートと呼ばれます。接尾辞のあるテンプレートは、基本テンプレートのバリアントと呼ばれます。基本テンプレートは、そのバリアントが作成される前に存在している必要があります。
接尾辞は、デバイス・グループをナビゲーション・プランに関連付けるためにも使用されます。これにより、異なるデバイス・グループ内のデバイスに対して異なるWebサイト・ナビゲーションを実装できます。テンプレートは、配信システムにおけるWebサイト・ナビゲーションを指定するために、device:siteplanタグを使用してコーディングされます。
デバイス・グループを作成するには、タイプDeviceGroupのアセットを作成します。その過程で、次のものを指定します。
接尾辞。
登録されているデバイス名、またはデバイスを作成対象のグループに関連付けるためにWebCenter Sitesで使用される基準のいずれか。
注意:
デバイスの検出中に、デバイス・グループへのデバイスの照合が適切に行われるように、複数のデバイス・グループに優先順位を付ける必要があります。
デバイス・グループの構成手順については、「デバイス・グループの構成方法」を参照してください。デバイス・グループの優先順位付け手順については、「デバイス・グループの優先順位付け方法」を参照してください。
モバイル・デバイスは、デバイス・アセットで表すことができ、Contributorインタフェースにおけるモバイル・デバイスのコンテキストで、モバイルWebサイト・コンテンツのプレビューが行えます。デバイス・アセットは、プレビューをサポートする目的でのみ使用されます。デバイス・アセットは、デバイスが同じデバイス・グループで収集されるほど類似している場合でも、バリエーションを示します(画面サイズなど)。デバイス・アセットのコンテキストでプレビューすることにより、コンテンツ・コントリビュータは、対応する実デバイス上でコンテンツが正しくレンダリングされることを確認できます。
デバイス・アセットは、イメージとユーザー・エージェントで構成されます。ユーザー・エージェントは、デバイス・アセットを(1)デバイス・リポジトリの実デバイスおよび(2)基準に一致するデバイス・グループに関連付けるために使用します。デバイス・グループとデバイス・アセットの関係を示す関連付けの例については、図26-3 を参照してください。
デバイス・アセットは、デバイス検出によってデバイス・グループに関連付けられます。デバイス・アセットが2つ以上のデバイス・グループで指定される基準に一致する場合、希望する(優先順位が最も高い)デバイス・グループに自動的に関連付けられます。デバイスがすべてのデバイス・グループの基準に一致しない場合、デフォルトのデバイス・グループ(デスクトップ・ブラウザへのWebサイトの提供に使用される)に自動的に割り当てられます。デバイスがデバイス・グループに関連付けられたら、そのデバイス・グループに関連付けられているテンプレートがプレビュー・モードでWebサイト・コンテンツをレンダリングできます。コンテンツは、デバイス・イメージ上で上書きされます。
注意:
コンテンツ・コントリビュータが次のプレビュー動作を認識していることを確認してください。
モバイル・デバイスのWebページのプレビューがすべてのブラウザで機能しているときに、ブラウザとユーザー・エージェント間で不一致がある場合には、一部の機能が正しく表示されません。たとえば、ユーザー・エージェントがAndroid上のFireFoxであるときに、Internet ExplorerでContributorインタフェースを開くと、ブラウザはInternet Explorerエンジンを使用してHTMLをレンダリングします。したがって、Contributorインタフェースのプレビューは、実モバイル・デバイス上の実際のページ表示とは異なる可能性あります。
プレビューでは、実デバイス上のフルスクリーン・モード表示でページがレンダリングされます。
デバイスの作成手順については、「デバイス・アセットの作成方法」を参照してください。
サイト・ナビゲーションは、Webサイトのナビゲーショナル階層を定義します。たとえば、図26-4に、Contributorインタフェース内のavisportsサンプル・サイト用の「デフォルト」、タッチおよびノンタッチ・サイト・ナビゲーションを示します。
サイト・ナビゲーションを作成する場合、共有接尾辞を選択することによって、デバイス・グループをそのサイト・ナビゲーションに関連付けます。サイト・ナビゲーションは、それらのデバイス・グループのデバイスに提供されます。(選択すると、その接尾辞は他のサイト・ナビゲーションに対して使用できなくなります。)
サイト・ナビゲーションの作成には、次の2つの基本的な方法があります。
すべてのデバイス・グループのすべてのデバイスの単一サイト・ナビゲーションを作成します。
異なるデバイス・グループ用に異なるサイト・ナビゲーションを作成します。コンテンツはサイト・ナビゲーション間で再利用することもできれば、サイト・ナビゲーションごとに変えることもできます。
サイト・ナビゲーションの構成手順については、「サイト・ナビゲーションの作成方法」を参照してください。
モバイルWebサイトをレンダリングするテンプレートを作成するには、次の2つの基本的な方法があります。
すべてのモバイル・デバイス(つまり、すべてのデバイス・グループ)に適応する単一セットのテンプレートを作成します。Adaptiveテンプレートは、デバイスの画面解像度に適応し、コンテンツを適切にレンダリングします。このシナリオでは、接尾辞の付いたテンプレートを作成する必要はありません。
異なるデバイス・グループ用に異なるテンプレートを作成します。(その例が「デバイス・グループと接尾辞について」で説明されています。)このシナリオでは、2セットのテンプレートを作成する必要があります。1つのセットには基本テンプレート(接尾辞なし)を含めます。他のセットには、テンプレート・バリアント(接尾辞付きテンプレート)を含めます。テンプレート・バリアントを作成するには、基本テンプレートの名前に_suffixを追加します。
たとえば、接尾辞がTouchであるiPhonesというデバイス・グループのテンプレート名は、BaseTemplateName_Touchになります。このネーミング規則、およびデバイス・グループとテンプレートの接尾辞の照合により、WebCenter Sitesで、モバイル・デバイスから適切なテンプレート・バリアントへリクエストがルーティングされるようになります。特定のデバイス・グループにモバイル・テンプレート・バリアントが存在しない場合は常に、基本テンプレートが使用されます。
注意:
WebCenter Sitesは、2つの接頭辞(_Touch_NonTouchなど)を持つテンプレートは認識しません。これらは既存のテンプレートのバリアントだとはみなされません。このようなテンプレートはContributorインタフェース内のアセット・ツール・バー上のページ・レイアウトの選択オプションを介して使用できないため、アセットのレンダリングには使用されません。2つの接頭辞を持つテンプレートのかわりに基本テンプレートが使用されます。
デバイス・グループを作成して接尾辞を把握したら、いつでもテンプレートを作成できます。テンプレートの作成の詳細は、「テンプレートの作成」を参照してください。
Mobility機能の構成を開始する前に、次の資格証明と情報を持っていることを確認します。
Adminインタフェースの「モビリティ」タブへのアクセスを自動的に付与されるユーザーは、GeneralAdminロールが割り当てられているユーザーのみです。
注意:
MobileSitesDeveloperロールは現在使用できません。11.1.1.8.0リリースからアップグレードした場合、MobileSitesDeveloperロールはユーザー定義のロールとして機能し、特に重要ではないことに注意してください。したがって、「モビリティ」タブへのアクセス権をGeneralAdminロールに付与する必要があります。
使用するデバイス・リポジトリに対する理解。オプションおよび手順の詳細は、「デバイス・リポジトリの構成方法」を参照してください。
構成するデバイス・グループに関する情報。
異なるデバイスを編成する対象デバイス・グループの名前。
デバイスを特定し、グループ化するのに使用する機能(ユーザー・エージェント、タッチ、タブレット、画面解像度など)。どのデータを提供するかの詳細は、「デバイス・グループの構成方法」を参照してください。
どの接尾辞を各デバイス・グループで使用するか。接尾辞は、各デバイス・グループに必要です。(これらのデバイス・グループのテンプレート・バリアントの名前に接尾辞を追加します。サイト・ナビゲーションに対しても同じ接尾辞を選択します。)
デフォルトではリストされない機能に条件を適用するためにカスタム・フィルタを使用するかどうか。詳細は、「デバイス・グループ基準に対するカスタム・フィルタの作成方法」を参照してください。
コントリビュータがモバイルWebサイトのプレビューで使用するデバイスのリスト。WebCenter Sitesは、一般的に使用されている多くのデバイスを表す複数のデバイス・アセットを備えています。
独自のデバイス・アセットを作成するには、最初に実デバイスの独自のイメージを作成して、その実デバイスのユーザー・エージェントを検索します。これらのイメージとユーザー・エージェント情報を使用して、デバイス・アセットを作成します。また、Contributorインタフェースのデバイス・セレクタ・パネルで使用するためにサムネイル・イメージも作成します。
Webサイトのモバイル・バージョン用の効果的なサイト・ナビゲーション。
モバイルWebサイト用のインフラストラクチャを作成するには、次の項で説明する手順を実行します。
devices.xml (デフォルトのリポジトリ)とWURFLのどちらかのデバイス・リポジトリを使用するオプションが用意されています。
devices.xmlを使用するには、次の手順を実行します。
ファイルに必要なデバイス名とユーザー・エージェントが含まれていることを確認します。DeviceRepositoryディレクトリ内でファイルを検索し、必要な変更を行います。
devices.xmlをWebCenter Sitesにアップロードすることによってアクティブ化します。手順は、「デバイス・リポジトリのアクティブ化方法」を参照してください。
devices.xmlファイルに現在登録されているものより多くの機能およびデバイスをサポートするには、WURFLをデバイス・リポジトリとして使用します。次の手順を実行します。
次のいずれかのフォーマットでWURFLリポジトリを取得します。
WURFL.zip
WURFL.xml (WURFLパッチ・ファイルと一緒に)。パッチ・ファイルは、WURFL.xmlのコンテンツをオーバーライドするために使用します。パッチ・ファイルの詳細は、http://wurfl.sourceforge.net/を参照してください。
注意:
WURFLは、サード・パーティのデバイス・リポジトリです。このリポジトリを使用するには、ScientiaMobileからライセンスを購入する必要があります。WebCenter Sitesには組み込まれていません。
wurfl.xmlファイルとパッチを使用する場合は、他の手順に進む前にパッチ・ファイルを構成します。
WURFLリポジトリをWebCenter Sitesにアップロードすることによってアクティブ化します。手順は、「デバイス・リポジトリのアクティブ化方法」を参照してください。
WebCenter Sitesでは、入力としてXMLファイルをとる、デフォルトのカスタム・フィルタ実装(DefaultCustomFilter.java)を提供しています。独自のカスタム・フィルタを作成するには、CustomDeviceFilter.javaインタフェースの実装を記述します。カスタム・フィルタ用のXMLファイルは、「デバイス・グループの構成方法」で説明するように、「デバイス・グループ」構成ページからアップロードされます。
この項には、次の項目が含まれます。
注意:
カスタム・フィルタの使用方法の詳細は、「デバイス・グループの構成方法」を参照してください。
カスタム・フィルタのデフォルト実装クラスは、COM.FutureTense.Mobility.Filter.DefaultCustomFilterと呼ばれています。XML形式の入力を受け入れます。WebCenter Sitesが提供するデフォルトのカスタム・フィルタ実装では、すべての属性が渡された場合にのみ、フィルタが渡されます。同様に、そのすべてのフィルタが渡されると、カスタム・フィルタ全体が渡されます。そのため、どのシナリオでも、フィルタ条件を機能させるために、すべての引数を渡す必要があります。
次の例は、WURFLリポジトリからデバイス・プロパティ名をとるサンプル・フィルタXMLを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<devicefilters>
<filter name="tabletFilter" classname="COM.FutureTense.Mobility.Filter.DefaultCustomFilter"> //Filter 1
<argument name="is_tablet" value="true" datatype="boolean"/> //argument 1 of filter 1
<argument name="pointing_method" value="touchscreen" datatype="string" operator="equals"/> //argument 2 of filter 1
</filter>
<filter name="flashFilter" classname="COM.FutureTense.Mobility.Filter.DefaultCustomFilter"> //Filter 2
<argument name=" full_flash_support" value="false" datatype="boolean"/> //argument 1 of filter 1
</filter>
</devicefilters>
前述のサンプルでは、tabletFilterは2つの引数を持ちます。argument 1は、is_tabletプロパティの値がtrueである必要があり、argument 2は、pointing_methodプロパティの値がtouchscreenである必要があります。flashFilterは、full_flash_supportプロパティの値がfalseである必要がある、1つの引数のみを持ちます。各引数はルールで、完全なフィルタです。すべての引数の条件が満たされる場合にのみ、前述のカスタム・フィルタを含むデバイス・グループとデバイスが一致します。
このサンプルXMLでは、WURFLリポジトリからのデバイス・プロパティ名を使用します。デフォルト・デバイス・リポジトリ(devices.xml) XMLは、次の例のようになります(プロパティ名が変更されていることに注意してください)。このフィルタXMLには、tabletFilterおよびflashFilterという、2つのフィルタがあります。
<?xml version="1.0" encoding="UTF-8"?>
<devicefilters>
<filter name="tabletFilter" classname="COM.FutureTense.Mobility.Filter.DefaultCustomFilter"> //Filter 1
<argument name="tablet" value="true" datatype="boolean"/> //argument 1 of filter 1
<argument name="touch" value="true" datatype="string" operator="equals"/> //argument 2 of filter 1
</filter>
<filter name="flashFilter" classname="COM.FutureTense.Mobility.Filter.DefaultCustomFilter"> //Filter 2
<argument name="flash" value="false" datatype="boolean" /> //argument 1 of filter 1
</filter></devicefilters>
DefaultCustomFIlter.javaに基づいてカスタム・フィルタを作成する場合は、次の点を考慮してください。
カスタム・フィルタでは、datatype引数属性の可能な値は、string、number、booleanです。デフォルト値はstringです。
datatype = numberの場合、operator属性の可能な値は、<>、notequals、<、lt、>、gt、=、equalsです。デフォルト値はequalsです。
datatype = booleanの場合、operator属性の可能な値は、=、equalsです。他の値は、equalsの逆の値として処理されます。デフォルト値はequalsです。
datatype = stringの場合、operator属性の可能な値は、=、equals、%、like、!=、notequals、!%、notlikeです。デフォルト値はequalsです。次のスニペットは、operator属性のlikeまたは%値の使用を示しています。
<argument name="pointing_method" value="touch" datatype="string" operator="like"/>
ここでは、pointing_methodプロパティの値には、touchがサブ文字列または単語全体として含まれている必要があります。
プロパティ属性の値は、現在のデバイス・リポジトリのプロパティ名どおりである必要があります(devices.xmlまたはWURFL.xmlのいずれか)。
次の例は、DeviceGroupFilterインタフェースを実装し、matchesメソッドを使用するJavaクラスを示しています。カスタム・フィルタは1つ以上のフィルタで構成できます。各フィルタには0以上の引数を含めることができます。カスタム・フィルタ実装は、ORルールまたはカスタム・ロジックを使用できます。
public class UserDefinedCustomFilter implements DeviceGroupFilter
{
public boolean matches(DeviceContext context)
{
// Logic that returns true/false depending on whether criteria matched or not.
}
}
デバイス・グループを構成するには:
「モビリティ」ノードで、「デバイス・グループ」ノードを開きます。
図26-6 に示すように、「デバイス・グループの追加」をクリックします。
「デバイス・グループ」フォームが開きます。
「デバイス・グループ」フォームで「コンテンツ」タブを選択して、次の操作を実行します。
「名前」フィールドに、作成しているデバイス・グループのわかりやすい名前を入力します。
「接尾辞」セクションで、このデバイス・グループ(図26-6 )用に作成するテンプレートで使用する接尾辞を入力します。または、既存の接尾辞がある場合は、それを選択します。
注意:
この接尾辞は編集できません。後で変更するには、このデバイス・グループを再作成して、この接尾辞を変更する必要があります。
「アクティブ」フィールドで「はい」を選択すると、このデバイス・グループのデバイス検出が有効になります。
注意:
デバイス・グループはグローバルです。有効化すると、すべてのサイトで利用できるようになります。同様に、無効化すると、すべてのサイトで利用不可になり、デバイス検出で使用されなくなります。
「基準」タブ(図26-7)を選択し、適切なテンプレート・バリアントに関連付けることのできる、実デバイスの照合用のルール・セットを作成します。
1つ以上のデバイス名を入力するか(残りのフォームは無効になる。図26-7を参照)、デバイス名を省略して残りのフォームに記入します。
デバイス名を入力する場合は、「デバイス・リポジトリの構成方法」で説明されている手順を実行したときに選択したデバイス・リポジトリに登録されているのと同じ名前を入力します。devices.xmlをアップロードした場合は、デバイス・エントリ名を入力します。WURFLをアップロードした場合は、デバイスのmodel_nameを入力します。
デバイスは、一度に1つのデバイス・グループにしか属することができません。
「デバイス・グループの優先順位付け方法」に進みます。
デバイス名を省略する場合は、次のように、残りのフォームを記入します。
「ユーザーエージェント」セクション: このセクションは、デバイス名を指定する場合は無効になります。
このフィールドには、デバイス名のリスト、またはユーザー・エージェント、画面ディメンション、機能およびカスタム・フィルタの組合せを入力します。ユーザー・エージェントregex、機能、画面ディメンションおよびカスタム・フィルタの組合せでは、デバイスは、デバイス・グループとの照合に使用されるすべてのルールを満たす必要があります。
受信リクエストの送信元のブラウザと一致するユーザー・エージェントを入力します。または、ユーザー・エージェントのセットと照合する正規表現や部分文字列を入力します。たとえば、すべてのiPhoneユーザー・エージェントを照合するには、ユーザー・エージェントreg expを(m|M)ozilla/5.0(| )\(i(p|P)(hone|od|rod).*として指定します。この式は、iPhone Java regexを含むすべてのユーザー・エージェント文字列に一致します。または、すべてのiPhoneに一致する部分文字列iPhone;を使用します。
注意:
デバイス・リポジトリ内で入力したユーザー・エージェント用として使用可能なデバイスの数を確認するには、「一致しているデバイス」セクションで「リフレッシュ」アイコンをクリックします。
「機能」セクション: このセクションは、デバイス名を指定する場合は無効になります。その機能は、「タッチ・スクリーン」、「JavaScript」、「縦横方向」および「タブレット」です。各機能には、「はい」、「いいえ」、「評価しない」というオプションがあります。
たとえば、このデバイス・グループでJavaScriptをサポートしないタブレット・デバイスのみを照合するには、「タブレット」機能で「はい」を、「JavaScript」機能で「いいえ」を、残りの機能で「評価しない」を選択します。
「画面解像度」セクション: このセクションは、デバイス名を指定する場合は無効になります。表示領域の最大と最小の幅および高さ(単位はピクセル)を入力します。たとえば、最大幅が640である場合、画面解像度の幅が640以下であるすべてのデバイスにこのデバイス・グループが一致します。
「カスタム・デバイス・フィルタ」セクションで「参照」をクリックして、「デバイス・グループ」の「基準」タブにリストされていない機能に対して条件を適用するために作成した可能性のあるカスタム・フィルタを選択します。カスタム・フィルタを作成してデバイス基準を設定する方法については、「デバイス・グループ基準に対するカスタム・フィルタの作成方法」を参照してください。
「保存」アイコンをクリックして、デバイス・グループを保存します。
新しいデバイス・グループが「モビリティ」タブで、「デバイス・グループ」ノードの最下部にリストされます(図26-8)。
注意:
デバイス・グループに優先順位を付けてデバイス・アセットを作成したら、デバイス・グループとデバイス・アセットがデバイス検出によって正しく関連付けられていることを確認します。デバイス・グループを開いて「デバイス」タブを選択し、そのデバイス・グループに関連付けられているデバイス・アセットのリストを表示します。
デバイス・グループの優先順位付け手順については、「デバイス・グループの優先順位付け方法」を参照してください。
デバイス・アセットの作成手順については、「デバイス・アセットの作成方法」を参照してください。
実行時のデバイス検出で、優先順位が最も高いデバイス・グループに実デバイスが自動的に関連付けられるように、複数のデバイス・グループに優先順位を付ける必要があります。
デバイス・グループに優先順位を付けるには:
デバイス・アセット作成するには:
「モビリティ」ノードで、「デバイス」ノードを開きます。
「デバイスの追加」(図26-12 )をクリックします。
図26-13に示すように、「デバイス」フォームが開きます。
「コンテンツ」タブ(図26-13 )で、次の操作を実行します。
「名前」フィールドに、このデバイス・アセットの名前を入力します。
この名前はContributorインタフェースに表示されます。デバイス・リポジトリ内の名前と一致している必要はありません。
(オプション)。「製造業者」フィールドに、デバイス・メーカーの名前を入力します。
「ユーザー・エージェント」フィールドで、イメージを追加するデバイスの登録済ユーザー・エージェントを指定します。ユーザー・エージェントは、デバイス・リポジトリからコピーできます。
注意:
「ユーザー・エージェント」フィールドは、このデバイス・アセットが表す実デバイスを識別します。このフィールドは、優先順位が一番高い、一致するデバイス・グループにこのデバイスを関連付けするために、デバイス検出ロジックで使用します。
「ユーザー・エージェントのテスト」をクリックしてデバイス検出を実行し、このデバイスが特定のデバイス・グループに一致していることを確認します。
このデバイス・アセットをデバイス検出メカニズムでデバイス・グループに関連付けることができるように、「有効化」オプションを選択します。
「デバイス・イメージ」フィールドの隣にある「参照」をクリックして、イメージの保存先ディレクトリからデバイス・イメージを選択します。
(オプション)。「サムネイル・イメージ」フィールドの横で、Contributorインタフェースのプレビュー機能に関連付けられているデバイス・セレクタ・パネルに表示するサムネイル・イメージをアップロードします。サムネイルを選択すると、デバイス・イメージのページ・プレビューが表示されます。
「画面ディメンション」タブで、「高さ」、「幅」、「上」および「左」の各フィールドに必要なピクセルを入力し、「ピクセル率」フィールドにピクセル率を入力して、画面領域の適切なディメンションを決定します。
各フィールドにピクセルを入力すると、デバイス・イメージの画面領域もそれに応じてリセットされ始めます。この機能により、デバイス表示領域の正確なディメンションをその場で決定できます。
フォーム上の「保存」アイコンをクリックして、新しいデバイスを作成します。
成功メッセージが表示されます。
複数のサイト・ナビゲーションと単一のサイト・ナビゲーションのどちらが必要かは、設計方法により異なります。サイト・ナビゲーションを作成している場合、共通の接尾辞を選択することによって、デバイス・グループをこのナビゲーションに関連付けます。選択した接尾辞は、他のサイト・ナビゲーションで使用できなくなります。
サイト・ナビゲーションを作成するには:
注意:
デバイス・リポジトリを変更およびミラーリングした後は、必ずしも値を変更せずに、編集および保存を目的としてデバイス・グループを開くことにより、ターゲット・システム上のデバイス・グループへのデバイスの再関連付けをトリガーできます。WURFLデバイス・リポジトリをミラー・パブリッシュするには:
モバイルWebサイトをレンダリングするテンプレートを作成するには、次の2つの基本的な方法があります。
すべてのモバイル・デバイス(つまり、すべてのデバイス・グループ)に適応する単一セットのテンプレートを作成します。
異なるデバイス・グループ用に異なるテンプレートを作成します。このシナリオには接尾辞を使用する必要があります。この項では、この2番目の方法について説明します。
この項には次のトピックが含まれます:
異なるデバイス・グループ用の異なるテンプレートを作成する際には、次の要件に注意してください。
基本テンプレート(デスクトップWebサイトをレンダリングするテンプレート)を作成します。
基本テンプレートの名前を使用し、_suffixを追加して、テンプレート・バリアントを作成します。
テンプレートに基づいてページをキャッシュする場合は、キャッシュ基準の1つとして接尾辞(dパラメータ)を使用します。
表26-1では、テンプレートの作成時に使用するMobilityのタグについて説明しています。このタグの詳細は、Oracle WebCenter Sitesタグ・リファレンスを参照してください。
表26-1 Mobilityのタグ
| タグ | 説明 |
|---|---|
|
現在のデバイスを検出して、デバイス情報をロードします。 |
|
このタグは、ロードされたデバイスに対して |
|
このタグでは、現在ロードされているデバイスに対して特定の条件や、その条件が満たされると実行されるコードを指定できます。オプション属性 |
|
このタグは、現在ロードされているデバイスが、このタグで指定された機能をサポートしているかどうかをチェックします。タグ内のコードが実行されるのは、デバイスがこの機能をサポートしている場合です。 |
|
このタグは、現在ロードされているデバイスに対して、 |
|
実行時に、WebCenter Sitesではデバイス検出を使用して、 |
次のタグには、Mobility固有の属性が含まれます。
render:getpageurl
render:calltemplate
render:gettemplateurl
render:gettemplateurlparameters
insite:calltemplate
satellite:page
satellite:link
属性は次のとおりです。
d: デバイス・グループの接尾辞。
resolvetemplatefordevice: テンプレート名にデバイス・グループ接尾辞を追加します。デフォルト値はtrue。値がfalseに設定される場合、接尾辞がテンプレート名に追加されず、基本テンプレートがロードされます。
dパラメータは、前述の各タグからなるチェーンで、自動的に下流に伝達されます。タグは、渡されたd属性に基づいて、適切なテンプレート・バリアントをコールします。
avisportsサンプル・サイトの次の例で、c=PageおよびTestSiteは現在のサイトです。
<render:calltemplate tname='Detail' args="c,cid,p,d,locale,form-to-render" />
(i) for d=Desktop (default) or blank, the following template is called:
TestSite/Page/Detail
(ii) for d=Touch, the following template is called:
TestSite/Page/Detail_Touch
d属性の使用方法の詳細は、「デバイス検出の仕組み」を参照してください。
テンプレート・バリアントを作成するには、接頭辞をコピー、変更、および基本テンプレートに追加します。この接頭辞機能を使用して、バリアントが存在しない接頭辞に対して単一のテンプレート・バリアントの作成とテンプレート・バリアントのバルク作成の両方を行うことができます。
この項には次のトピックが含まれます:
注意:
接頭辞ベースの検索を使用すると、特定の接頭辞のテンプレートを簡単に検索できます。つまり、メニュー・バーの「検索」をクリックし、「検索」表からテンプレートの検索を選択します。「検索対象: テンプレート」画面で、「検索」ドロップダウン・リストから「接尾辞」を選択し、「検索文字列」ドロップダウン・リストから目的の接頭辞を選択します。検索結果には、非アクティブ化されたテンプレートまたは削除されたテンプレートも含まれます。(これらのタイプをサイトから削除し、検索結果に再表示されないようにしてください。)
Mobilityには、モバイルWebサイトのイメージを最適化できるイメージ最適化フィルタが用意されています。また、独自のイメージ最適化実装をプラグインし、イメージをカスタム手法で最適化することもできます。次の各項では、これら両方の方法について説明します。
WebCenter Sitesのイメージ最適化機能は、フレックス・アセット・ファミリに対して使用できます。フルサイズのイメージを最適化し、様々なタイプのモバイル・デバイスで適切に表示できます。この機能を使用すると、様々な接頭辞に対してイメージを最適化し、様々な画面ディメンションをサポートできます。たとえば、一部のデバイスでは、表示されるイメージはフルサイズのイメージの50%にする必要がありますが、他のデバイスでは、実際のサイズの50%より小さく表示する必要があります。
イメージ最適化フィルタを使用してイメージを最適化するには:
手順1で作成したフィルタをサイトのイメージ定義に追加するには、次の手順を実行します(たとえば、avisportsサンプル・サイトで、Image定義を検索できます)。
WebCenter Sitesでは、単一値と複数値の両方のblobタイプ属性がサポートされています。すべてのテンプレート・バリアントにイメージ最適化フィルタを適用するには、サイトの接頭辞の数と同じ数のblobタイプ属性アセットのインスタンスを作成します。たとえば、avisportsサンプル・サイトでは、既存のblobタイプ属性はimageFileです。このため、この場合、Touch接頭辞に対してこの属性アセットのインスタンスを作成し、NonTouch接頭辞に対して別のインスタンスを作成します。
イメージを作成または編集する場合は、イメージ最適化フィルタが機能します。このため、このフィルタを既存のイメージに適用するには、これらのイメージを編集して保存する必要があります。
WebCenter Sitesは、組込みのデバイス検出メカニズムを使用して、Webサイトのコンテンツを要求するデバイスを識別します。デバイスが特定されると、WebCenter Sitesは一致するデバイス・グループを検索して、その接尾辞を読み取ります。接尾辞を使用して、サイト・ナビゲーションを見つけ、テンプレート・バリアントを呼び出してそのコンテンツをレンダリングします。
詳細な手順は次のとおりです。
リモートSatellite Serverは、実デバイスからページ・リクエストを受信します。このリクエストのヘッダーには、デバイスのユーザー・エージェントが含まれます。
リモートSatellite Serverは独自のキャッシュ内でそのページを検索します。ページの検索に失敗すると、リモートSatellite ServerはWebCenter Sitesにページ・リクエストを送信します。
WebCenter Sitesは次のように応答します。
リクエスト・ヘッダーのユーザー・エージェントによってデバイスを識別します。
デバイス・リポジトリでユーザー・エージェントを検索します。
デバイス・リポジトリで一致するデバイスを見つけると、WebCenter Sitesはそのデバイスの機能も検索します。
WebCenter Sitesはユーザー・エージェント機能とデバイス機能を使用して、基準に合ったデバイス・グループを検索します。
そのデバイスを優先順位の一番高いデバイス・グループに関連付けます。
このデバイス・グループの接尾辞を読み取ります。
その接尾辞をicsスコープ内のdパラメータに割り当てます。
_suffixをURLで要求されたテンプレート名に追加します。
d=suffixを要求されたページのURLに追加します。
次に例を示します。
接尾辞がTouchの場合、WebCenter Sitesでは、元のURL pagename=avisports/HomeLayout1&c=Page&cid=1482760932をURL pagename=avisports/HomeLayout1_Touch&c=Page&cid=1482760932&d=Touch に変換します
テンプレート・バリアントが存在する場合、WebCenter Sitesは新しいURLを実行してそのページをキャッシュし、それをリモートSatellite Serverに送信します。
テンプレート・バリアントが存在しない場合、WebCenter Sitesは元のURLを実行してそのページをキャッシュし、それをリモートSatellite Serverに送信します。
リモートSatellite Serverはそのページをキャッシュして、デバイスにレスポンスを送信します。
リモートSatellite Serverは、デバイス検出情報もキャッシュして、それを同じデバイスからの後続のリクエストを処理するために使用します。これにより、WebCenter Sitesでのデバイス検出の再実行が回避されます。