Oracle WebCenter Sites: Mobilityは、Mobilityとも呼ばれ、そのユーザーは携帯電話やタブレットなどの様々なモバイル・デバイスにWebサイトを作成、プレビューおよび配信できます。
モバイルが最適化されたWebサイトをサポートするようにMobilityを実装するには、そのフレームワークを構成する必要があります。まず、この章では、主要な概念について説明し、そのフレームワークの主な機能を概説します。構成手順は次のとおりです。
この章には次の項が含まれます。
Mobilityフレームワークを構成するには、サイト・プランやテンプレートなど、WebCenter Sitesのコア機能の使用経験が必要です。また、モバイル・デバイスおよびそのユーザー・エージェントに対する理解が必要です。
WebCenter Sitesは、組込みのデバイス検出メカニズムを使用して、Webサイトのコンテンツを要求するデバイスを識別します。デバイスが識別されると、WebCenter Sitesは適切なサイト・プラン(サイト・ナビゲーション)を検索し、適切なテンプレートを呼び出してWebサイトをレンダリングします。
このデバイス検出プロセスのメカニズムには、デバイス・リポジトリ、デバイス・グループおよび接尾辞、デバイス・アセット、テンプレート・バリアント、サイト・プラン(モバイルWebサイトをサポートできるように拡張されている)などの新機能が関係しています。この項では、これらの新機能の背後にある概念について説明します。その後、モバイルWebサイトをサポートする機能の構成手順も示します。
機能が構成されたら、Contributorインタフェースで、図68-1に示すようなモバイル・サイトを作成し、プレビューおよび配信できます。この図では、avisportsサンプル・サイトのホームページが、3つのデバイスのコンテキストで表示されます(マルチデバイス・プレビュー)。
図68-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には組み込まれていません。
必要なデバイス・リポジトリの使用手順については、第68.4.2項「手順2: デバイス・リポジトリの設定」を参照してください。
デバイス・グループでは、デバイスの機能ベースのグループ化が可能です。デバイス・グループは、共通のWebサイトが配信可能な、共通の特徴を持つデバイスのコレクションを定義するアセットです。たとえば、図68-2に示すように、すべてのタッチフォンはあるグループに属することができ、ノンタッチ(QWERTY)フォンは別のグループに属することができます。
1つのWebサイトをすべてのタッチ・デバイスに配信できます。また、別のWebサイトをすべてのノンタッチ(QWERTY)デバイスへ配信できます。そのため、2セットのテンプレートをコーディングする必要があります。1セットはタッチ・デバイス・グループ用で、もう1セットはノンタッチ・デバイス・グループ用です。
ここで、接尾辞の概念が関係してきます。接尾辞は、正しいデバイス・グループにテンプレートを関連付けるために使用します。テンプレートおよびデバイス・グループが、_Touch
(または_NonTouch
)などの、同じ接尾辞を持つ場合に関連付けが行われます。たとえば、基本テンプレートHomeLayout
がデスクトップWebサイトのレンダリングに使用される場合は、テンプレートのバリアント、つまり、HomeLayout_
suffix
という名前のテンプレートを作成します。この例では、HomeLayout_Touch
テンプレートを作成して、タッチ・デバイス・グループのデバイス上のコンテンツをレンダリングし、HomeLayout_NonTouch
テンプレートを作成して、ノンタッチ・デバイス・グループのデバイス上のコンテンツをレンダリングします。
実行時に、WebCenter Sitesでは、デバイス・グループの接尾辞がテンプレート・バリアントの名前と照合されます。これにより、HomeLayout
がタッチ・デバイスから要求される場合には、HomeLayout_Touch
テンプレートを使用してWebサイトがレンダリングされます。これはデバイス検出の一環です。
注意: 接尾辞のないテンプレートは、基本テンプレートと呼ばれます。接尾辞のあるテンプレートは、基本テンプレートのバリアントと呼ばれます。基本テンプレートは、そのバリアントが作成される前に存在している必要があります。 |
接尾辞は、デバイス・グループをサイト・プランに関連付けるためにも使用されます。これにより、異なるデバイス・グループ内のデバイスに対して異なるWebサイト・ナビゲーションを実装できます。テンプレートは、配信システムにおけるWebサイト・ナビゲーションを指定するために、device:siteplan
タグを使用してコーディングされます。
デバイス・グループを作成するには、タイプDeviceGroupのアセットを作成します。その過程で、次のものを指定します。
接尾辞
登録されているデバイス名、またはデバイスを作成対象のグループに関連付けるためにWebCenter Sitesで使用される基準のいずれか
注意: 複数のデバイス・グループを作成する場合は、デバイスの検出中に、デバイス・グループへのデバイスのマッチングが適切に行われるように、デバイス・グループに優先順位を付ける必要があります。 |
デバイス・グループの構成手順については、第68.4.3項「手順3: デバイス・グループの構成」を参照してください。デバイス・グループの優先順位付けの手順については、第68.4.4項「手順4: デバイス・グループに優先順位を付ける」を参照してください。
モバイル・デバイスは、デバイス・アセットで表すことができ、Contributorインタフェースにおけるモバイル・デバイスのコンテキストで、モバイルWebサイト・コンテンツのプレビューが行えます。デバイス・アセットは、プレビューをサポートする目的でのみ使用されます。デバイス・アセットは、デバイスが同じデバイス・グループで収集されるほど類似している場合でも、バリエーションを示します(画面サイズなど)。デバイス・アセットのコンテキストでプレビューすることにより、コンテンツ・コントリビュータは、対応する実デバイス上でコンテンツが正しくレンダリングされることを確認できます。
デバイス・アセットは、イメージとユーザー・エージェントで構成されます。ユーザー・エージェントは、デバイス・アセットを(1)デバイス・リポジトリの実デバイスおよび(2)基準に一致するデバイス・グループに関連付けるために使用します。デバイス・グループとデバイス・アセットの関係を示す関連付けの例については、図68-3を参照してください。
デバイス・アセットは、デバイス検出によってデバイス・グループに関連付けられます。デバイス・アセットが2つ以上のデバイス・グループで指定される基準に一致する場合、デバイス・アセットは希望する(優先順位が最も高い)デバイス・グループに自動的に関連付けられます。デバイスがすべてのデバイス・グループの基準に一致しない場合、デフォルトのデバイス・グループ(デスクトップ・ブラウザへのWebサイトの提供に使用される)に自動的に割り当てられます。デバイスがデバイス・グループに関連付けられたら、そのデバイス・グループに関連付けられているテンプレートがプレビュー・モードでWebサイト・コンテンツをレンダリングできます。コンテンツは、デバイス・イメージ上で上書きされます。
注意: コンテンツ・コントリビュータが次のプレビュー動作を認識していることを確認してください。
|
デバイスの作成手順については、第68.4.5項「手順5: デバイス・アセットの作成」を参照してください。
サイト・プランは、Webサイトのナビゲーショナル階層を定義します。たとえば、図68-4は、Contributorインタフェースのavisportsサンプル・サイト用の次のサイト・プラン(Default、TouchおよびNonTouch)を示しています。
サイト・プランを作成する場合、共有接尾辞を選択することによって、デバイス・グループをそのサイト・プランに関連付けます。そのサイト・プランによって定義されるサイト・ナビゲーションは、それらのデバイス・グループのデバイスに提供されます。(選択すると、その接尾辞は他のサイト・プランに対して使用できなくなります。)
サイト・プランの作成には、次の2つの基本的な方法があります。
すべてのデバイス・グループのすべてのデバイスの単一サイト・プランを作成します。
複数のサイト・プランを作成します。デバイス・グループごとに異なるサイト・プランを設けることで、異なるナビゲーションが可能になります。コンテンツはサイト・プラン間で再利用することもできれば、サイト・プランごとに変えることもできます。
サイト・プランの構成手順については、第68.4.6項「手順6: サイト・プランの作成」を参照してください。
モバイルWebサイトをレンダリングするテンプレートを作成するには、次の2つの基本的な方法があります。
すべてのモバイル・デバイス(つまり、すべてのデバイス・グループ)に適応する単一セットのテンプレートを作成します。Adaptiveテンプレートは、デバイスの画面解像度に適応し、コンテンツを適切にレンダリングします。このシナリオでは、接尾辞の付いたテンプレートを作成する必要はありません。
異なるデバイス・グループ用に異なるテンプレートを作成します。(その例が第68.2.2項「デバイス・グループと接尾辞」で説明されています。)
このシナリオでは、2セットのテンプレートを作成する必要があります。1つのセットには基本テンプレート(接尾辞なし)を含めます。他のセットには、テンプレート・バリアント(接尾辞付きテンプレート)を含めます。テンプレート・バリアントを作成するには、基本テンプレートの名前に_suffix
を追加します。
たとえば、接尾辞Touch
が付いたiPhonesというデバイス・グループを作成する場合、テンプレートはBaseTemplateName
_Touch
になります。このネーミング規則、およびデバイス・グループとテンプレートの接尾辞の照合により、WebCenter Sitesで、モバイル・デバイスから適切なテンプレート・バリアントへリクエストがルーティングされるようになります。特定のデバイス・グループにモバイル・テンプレート・バリアントが存在しない場合は、かわりに基本テンプレートが使用されます。
注意: WebCenter Sitesは2つの接尾辞( |
デバイス・グループを作成し、接尾辞を指定した後はいつでもテンプレート・バリアントを作成できます。テンプレートの作成の詳細は、第68.4.8項「ステップ8: テンプレートの作成」を参照してください。
Mobility機能の構成を開始する前に、次の資格証明と情報を持っていることを確認します。
SiteAdmin
またはGeneralAdmin
のいずれかのロールを持っていること。この章では、GeneralAdmin
ロールを持っていると想定しています。
使用するデバイス・リポジトリに対する理解。オプションおよび手順の詳細は、第68.4.2項「手順2: デバイス・リポジトリの設定」を参照してください。
異なるデバイスを編成する対象デバイス・グループの名前。
デバイスを特定し、グループ化するのに使用する機能(ユーザー・エージェント、タッチ、タブレット、画面解像度など)。どのデータを提供するかの詳細は、第68.4.3項「手順3: デバイス・グループの構成」を参照してください。
どの接尾辞を各デバイス・グループで使用するか。接尾辞は、各デバイス・グループに必要です。(これらのデバイス・グループのテンプレート・バリアントの名前に接尾辞を追加します。サイト・プランに対しても同じ接尾辞を選択します。)
コントリビュータがモバイルWebサイトのプレビューで使用するデバイスのリスト。WebCenter Sitesは、一般的に使用されている多くのデバイスを表す複数のデバイス・アセットを備えています。
独自のデバイス・アセットを作成する必要がある場合は、最初に実デバイスの独自のイメージを作成して、その実デバイスのユーザー・エージェントを検索します。これらのイメージとユーザー・エージェント情報を使用して、デバイス・アセットを作成します。また、Contributorインタフェースのデバイス・セレクタ・パネルで使用するためにサムネイル・イメージも作成します。
Webサイトのモバイル・バージョン用の効果的なサイト・プラン。
この項の内容は、次のとおりです。
「管理」インタフェースの「モビリティ」タブへのアクセスを自動的に付与されるユーザーは、WebCenter Sitesインストール・プロセス中にその資格証明が使用されたユーザーのみです。このユーザーには、MobileSitesDeveloper
ロールが自動的に割り当てられています。他のユーザーがこのタブを使用するには、MobileSitesDeveloper
ロールを明示的に割り当てる必要があります。
この手順には、次のデバイス・リポジトリのいずれかを使用するオプションがあります。
devices.xml
このファイルを使用する場合は、アクティブであることを確認します。手順については、第68.4.2.1項「どのデバイス・リポジトリがアクティブかの判別」を参照してください。
このファイルを変更する必要がある場合は、ファイルを変更して、それをWebCenter Sitesに再度アップロードする必要があります。devices.xml
の設定手順については、第68.4.2.2項「デフォルトのデバイス・リポジトリの変更」を参照してください。
WURFL
このリポジトリのライセンスされているバージョンをScientiaMobileから取得する必要があります。WebCenter Sitesには組み込まれていません。
WURFLリポジトリは、次の2つの形式のいずれかでアップロードできます。
WURFl.zip
WURFL.xml
(WURFLパッチ・ファイルと一緒に)。パッチ・ファイルは、WURFL.xml
のコンテンツをオーバーライドするために使用します。パッチ・ファイルの詳細は、http://wurfl.sourceforge.net/
を参照してください。WURFLの設定手順については、第68.4.2.3項「サード・パーティ・デバイス・リポジトリのアップロード」を参照してください。
「モビリティ」タブで、「デバイス・リポジトリ」ノードをダブルクリックします。
「デバイス・リポジトリ・アップローダ」フォームで、「デフォルト・リポジトリ」(devices.xml
がアクティブであることを意味する)またはWURFLファイル(複数のファイルのうちのいずれか)のどちらのリポジトリが選択されているかを確認します。
次の手順のいずれかに進みます。
デバイス・リポジトリを変更する必要がある場合は、次の項のいずれかを完了します。
現在のアクティブなリポジトリで問題がなければ、第68.4.3項「手順3: デバイス・グループの構成」に進みます。
この手順では、次のことを確認します。
devices.xml
ファイルに、必要なデバイス名とユーザー・エージェントが含まれていること。
devices.xml
ファイルがアクティブであること。
devices.xml
ファイルを設定するには:
devices.xml
ファイルですでに登録されているものより多くの機能およびデバイスのサポートが必要な場合は、WURFLをデバイス・リポジトリとして使用できます。WURFLはWURFL.zip
として、またはwurfl.xml
とそのパッチ・ファイルとしてアップロードできます。
注意: WURFLは、サード・パーティのデバイス・リポジトリです。このリポジトリを使用するには、ライセンスを購入する必要があります。
|
WURFLをアップロードするには:
Adminインタフェースで、「モビリティ」タブに移動します。
「デバイス・リポジトリ」をダブルクリックします。
「デバイス・リポジトリ・アップローダ」フォームの「WURFL」セクションに移動して、完全なWURFL
zipファイル、またはメインwurfl.xml
ファイルとパッチ・ファイルのいずれかをアップロードします。
注意:
|
デバイス・グループを構成するには:
「モビリティ」タブで、「デバイス・グループ」ノードを開きます。
図68-6に示すように、「デバイス・グループの追加」をクリックします。
図68-7に示すように、「デバイス・グループ」フォームが表示されます。
「デバイス・グループ」フォームで「コンテンツ」タブを選択して、次の操作を実行します。
「名前」フィールドに、作成しているデバイス・グループのわかりやすい名前を入力します。
「接尾辞」セクションで、このデバイス・グループ(図68-7)用に作成するテンプレートで使用する接尾辞を入力します。既存の接尾辞がある場合は、それを選択できます。
注意: この接尾辞は編集できません。後で変更したい場合は、このデバイス・グループを再作成して、この接尾辞を変更する必要があります。 |
「アクティブ」フィールドで「はい」を選択すると、このデバイス・グループのデバイス検出が有効になります。
注意: デバイス・グループはグローバルです。有効化すると、すべてのサイトで利用できるようになります。同様に、無効化すると、すべてのサイトで利用不可になり、デバイス検出で使用されなくなります。 |
「基準」タブ(図68-8)を選択し、適切なテンプレート・バリアントに関連付けることのできる、実デバイスのマッチング用のルール・セットを作成します。
1つ以上のデバイス名を入力するか(残りのフォームは無効になる。図68-8を参照)、デバイス名を省略して残りのフォームに記入します。
デバイス名を入力する場合は、第68.4.2項「手順2: デバイス・リポジトリの設定」で使用することを選択したデバイス・リポジトリに登録されているのと同じ名前を入力します。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以下であるすべてのデバイスがこのデバイス・グループに一致します。
「カスタム・デバイス・フィルタ」セクションで「参照」をクリックして、「デバイス・グループ」の「基準」タブにリストされていない機能に対して条件を適用するために作成した可能性のあるカスタム・フィルタを選択します。カスタム・フィルタを作成してデバイス基準を設定する方法については、第68.4.3.1項「デバイス・グループ基準に対するカスタム・フィルタの作成」を参照してください。
「保存」アイコンをクリックして、デバイス・グループを保存します。
新しいデバイス・グループが「モビリティ」タブで、「デバイス・グループ」ノードの最下部にリストされます(図68-9)。
注意: デバイス・グループに優先順位を付けてデバイス・アセットを作成したら、デバイス検出によって正しく関連付けられていることを確認できます。そのためには、デバイス・グループを開いて「デバイス」タブを選択し、そのデバイス・グループに関連付けられているデバイス・アセットのリストを表示します。 デバイス・グループに優先順位を付ける手順については、第68.4.4項「手順4: デバイス・グループに優先順位を付ける」を参照してください。 デバイス・アセットの作成手順は、第68.4.5項「手順5: デバイス・アセットの作成」を参照してください。 |
WebCenterでは、入力としてXMLファイルをとる、デフォルトのカスタム・フィルタ実装(DefaultCustomFilter.java)
を提供しています。独自のカスタム・フィルタを作成するには、CustomDeviceFilter.java
インタフェースの実装を記述できます。カスタム・フィルタ用のXMLファイルは、第68.4.3項「手順3: デバイス・グループの構成」で説明するように、「デバイス・グループ」構成画面からアップロードされます。
この項は、次のトピックで構成されています。
WebCenter Sitesに付属するデフォルトのDefaultCustomFIlter.javaカスタム・フィルタの使用
カスタム・フィルタのデフォルト実装クラスは、COM.FutureTense.Mobility.Filter.DefaultCustomFilter
と呼ばれています。XML形式の入力を受け入れます。WebCenter Sitesが提供するデフォルトのカスタム・フィルタ実装では、すべての属性が渡された場合にのみ、フィルタが渡されます。同様に、そのすべてのフィルタが渡されると、カスタム・フィルタ全体が渡されます。そのため、どのシナリオでも、フィルタ条件を機能させるために、すべての引数を渡す必要があります。
例68-1は、WURFLリポジトリからデバイス・プロパティ名をとるサンプル・フィルタXMLを示しています。
例68-1 DefaultCustomFIlter.javaおよびWURFLリポジトリに基づくサンプル・フィルタ
<?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は例68-2のようになります(プロパティ名が変更されていることに注意してください)。このフィルタXMLには、tabletFilter
およびflashFilter
という、2つのフィルタがあります。
例68-2 DefaultCustomFIlter.javaおよびDevices.xmlリポジトリに基づくサンプル・フィルタ
<?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実装の作成
DeviceGroupFilter
インタフェース(例68-3)を実装し、matches
メソッドを使用するJavaクラスを作成できます。カスタム・フィルタは1つ以上のフィルタで構成できます。各フィルタには0以上の引数を含めることができます。カスタム・フィルタ実装は、OR
ルールまたはカスタム・ロジックを使用できます。
実行時のデバイス検出で、優先順位が最も高いデバイス・グループに実デバイスが自動的に関連付けられるように、複数のデバイス・グループに優先順位を付ける必要があります。
デバイス・グループに優先順位を付けるには:
デバイス・アセット作成するには:
「モビリティ」タブで、「デバイス」ノードを開きます。
「デバイスの追加」(図68-13)をクリックします。
図68-14に示すように、「デバイス」フォームが表示されます。
「コンテンツ」タブ(図68-14)で、次の操作を実行します。
「名前」フィールドに、このデバイス・アセットの名前を入力します。
入力した名前は、Contributorインタフェースに表示されます。デバイス・リポジトリ内の名前と一致している必要はありません。
(オプション)。「製造業者」フィールドに、デバイス・メーカーの名前を入力します。
「ユーザー・エージェント」フィールドで、イメージを追加するデバイスの登録済ユーザー・エージェントを指定します。ユーザー・エージェントは、デバイス・リポジトリからコピーできます。
注意: 「ユーザー・エージェント」フィールドは、このデバイス・アセットが表す実デバイスを識別します。このフィールドは、優先順位が一番高い、一致するデバイス・グループにこのデバイスを関連付けするために、デバイス検出ロジックで使用します。 |
「ユーザー・エージェントのテスト」をクリックしてデバイス検出を実行し、このデバイスが特定のデバイス・グループに一致していることを確認します。
デバイス検出で、このデバイス・アセットをデバイス・グループに関連付けることができるように、「有効化」チェック・ボックスを選択します。
「デバイス・イメージ」フィールドの隣にある「参照」をクリックして、イメージの保存先ディレクトリからデバイス・イメージを選択します。
(オプション)。「サムネイル・イメージ」フィールドの横に、サムネイル・イメージをアップロードします。このサムネイル・イメージは、Contributorインタフェースのプレビュー機能に関連付けられているデバイス・セレクタ・パネルに表示されます。サムネイルを選択すると、デバイス・イメージのページ・プレビューが表示されます。
「画面ディメンション」タブで、「高さ」、「幅」、「上」および「左」の各フィールドに必要なピクセルを入力し、「ピクセル率」フィールドにピクセル率を入力して、画面領域の適切なディメンションを決定します。
各フィールドにピクセルを入力すると、デバイス・イメージの画面領域もそれに応じてリセットされ始めます。この機能により、デバイス表示領域の正確なディメンションをその場で決定できます。
フォーム上の「保存」アイコンをクリックして、新しいデバイスを作成します。
成功メッセージが表示されます。
複数のサイト・プランと単一のサイト・プランのどちらが必要かは、設計方法により異なります。
サイト・プランを作成している場合、共通の接尾辞を選択することによって、デバイス・グループをそのサイト・プランに関連付けます。選択した接尾辞は、他のサイト・プランで使用できなくなります。
サイト・プランを作成するには:
Adminインタフェースで「管理」タブを開き、「サイト」ノードとサイト・プランの作成場所であるサイトを開きます。
注意:
|
「サイト・プラン」ノードを開きます。
「新規追加」(図68-16)をダブルクリックします。
「サイト・プランの追加」ページが表示されます(図68-17)。
「名前」フィールドに、サイト・プランのわかりやすい名前を入力します。
(オプション)「説明」フィールドに、サイト・プランの説明を入力します。
デバイス・グループをこのサイト・プランに関連付けるには、「接尾辞」セクションに移動して、これらのデバイス・グループによって使用される接尾辞を選択します。
注意: 「接尾辞」セクションには、サイト・プランに割り当てられていない接尾辞のみがリストされます。 |
「関連付けられたデバイス・グループ」パネル(図68-18)に、選択した接尾辞に関連付けられているデバイス・グループがリストされます。
「追加」をクリックして、サイト・プランを完了します。
図68-19のような画面が表示されます。
「サイト・プラン」タブをクリックして、新しく作成されたサイト・プランを表示します。
サイト・プランを修正するには、「管理」タブ上のサイト・ノードの下にあるサイト・プランをダブルクリックします。「サイト・プランの修正」ページで、必要な変更を行ってから、「修正」をクリックします。第68.4.7項「手順7: サイト・プランの編成」に進みます。
AdminおよびContributorインタフェースでサイト・プランを特定の順序で表示する必要がある場合には、それを並べ替えることができます。
サイト・プランを編成するには:
Adminインタフェースで「管理」タブを開き、「サイト」ノードとサイト・プランに優先順位を付けるサイトを開きます。
注意:
|
「サイト・プランの並替え」をダブルクリックします。
「サイト・プランの並替え」画面(図68-21)で、サイト・プランをドラッグ・アンド・ドロップして、希望の順序に並べ替えます。
サイト・プランを並べ替えたら、「サイト・プランの並替え」画面が図68-22のように表示されます。
「保存」をクリックします。
「修正に成功しました。」メッセージが表示されます。
第68.4.8項「手順8: テンプレートの作成」に進みます。
モバイルWebサイトをレンダリングするテンプレートを作成するには、次の2つの基本的な方法があります。
すべてのモバイル・デバイス(つまり、すべてのデバイス・グループ)に適応する単一セットのテンプレートを作成します。
異なるデバイス・グループ用に異なるテンプレートを作成します。このシナリオには接尾辞を使用する必要があります。
この項では、2番目の方法について説明します。この項の内容は、次のとおりです。
異なるデバイス・グループ用の異なるテンプレートを作成する際には、次の要件に注意してください。
基本テンプレート(デスクトップWebサイトをレンダリングするテンプレート)を作成します。
基本テンプレートの名前を使用し、_
suffix
を追加して、テンプレート・バリアントを作成します。
テンプレートに基づいてページをキャッシュする場合は、キャッシュ基準の1つとして接尾辞(d
パラメータ)を使用する必要があります。
表68-1では、テンプレートの作成時に使用するMobilityのタグについて説明しています。このタグの詳細は、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。
表68-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
属性の使用方法の詳細は、第68.5項「デバイス検出」を参照してください。
WebCenter Sitesは、組込みのデバイス検出メカニズムを使用して、Webサイトのコンテンツを要求するデバイスを識別します。デバイスが特定されると、WebCenter Sitesは一致するデバイス・グループを検索して、その接尾辞を読み取ります。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でのデバイス検出の再実行が回避されます。