ヘッダーをスキップ
Oracle® Fusion Middleware WebCenter Sites開発者ガイド
11gリリース1 (11.1.1.8.0)
E49681-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

68 モバイルWebサイトをサポートするためのOracle WebCenter Sites: Mobilityの構成

Oracle WebCenter Sites: Mobilityは、Mobilityとも呼ばれ、そのユーザーは携帯電話やタブレットなどの様々なモバイル・デバイスにWebサイトを作成、プレビューおよび配信できます。

モバイルが最適化されたWebサイトをサポートするようにMobilityを実装するには、そのフレームワークを構成する必要があります。まず、この章では、主要な概念について説明し、そのフレームワークの主な機能を概説します。構成手順は次のとおりです。

この章には次の項が含まれます。

68.1 開発者の前提条件

Mobilityフレームワークを構成するには、サイト・プランやテンプレートなど、WebCenter Sitesのコア機能の使用経験が必要です。また、モバイル・デバイスおよびそのユーザー・エージェントに対する理解が必要です。

68.2 主要なMobilityの概念

WebCenter Sitesは、組込みのデバイス検出メカニズムを使用して、Webサイトのコンテンツを要求するデバイスを識別します。デバイスが識別されると、WebCenter Sitesは適切なサイト・プラン(サイト・ナビゲーション)を検索し、適切なテンプレートを呼び出してWebサイトをレンダリングします。

このデバイス検出プロセスのメカニズムには、デバイス・リポジトリ、デバイス・グループおよび接尾辞、デバイス・アセット、テンプレート・バリアント、サイト・プラン(モバイルWebサイトをサポートできるように拡張されている)などの新機能が関係しています。この項では、これらの新機能の背後にある概念について説明します。その後、モバイルWebサイトをサポートする機能の構成手順も示します。

機能が構成されたら、Contributorインタフェースで、図68-1に示すようなモバイル・サイトを作成し、プレビューおよび配信できます。この図では、avisportsサンプル・サイトのホームページが、3つのデバイスのコンテキストで表示されます(マルチデバイス・プレビュー)。

図68-1 Contributorインタフェースの複数デバイスのコンテキストのavisportサイト・ホームページのプレビュー

図68-1の説明が続きます
「図68-1 Contributorインタフェースの複数デバイスのコンテキストのavisportサイト・ホームページのプレビュー」の説明

この項の内容は、次のとおりです。

68.2.1 デバイス・リポジトリ

デバイス・リポジトリは、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: デバイス・リポジトリの設定」を参照してください。

68.2.2 デバイス・グループおよび接尾辞

デバイス・グループでは、デバイスの機能ベースのグループ化が可能です。デバイス・グループは、共通のWebサイトが配信可能な、共通の特徴を持つデバイスのコレクションを定義するアセットです。たとえば、図68-2に示すように、すべてのタッチフォンはあるグループに属することができ、ノンタッチ(QWERTY)フォンは別のグループに属することができます。

図68-2 デバイス・タイプベースのグループ化

図68-2の説明が続きます
「図68-2 デバイス・タイプベースのグループ化」の説明

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: デバイス・グループに優先順位を付ける」を参照してください。

68.2.3 デバイス・アセット

モバイル・デバイスは、デバイス・アセットで表すことができ、Contributorインタフェースにおけるモバイル・デバイスのコンテキストで、モバイルWebサイト・コンテンツのプレビューが行えます。デバイス・アセットは、プレビューをサポートする目的でのみ使用されます。デバイス・アセットは、デバイスが同じデバイス・グループで収集されるほど類似している場合でも、バリエーションを示します(画面サイズなど)。デバイス・アセットのコンテキストでプレビューすることにより、コンテンツ・コントリビュータは、対応する実デバイス上でコンテンツが正しくレンダリングされることを確認できます。

デバイス・アセットは、イメージとユーザー・エージェントで構成されます。ユーザー・エージェントは、デバイス・アセットを(1)デバイス・リポジトリの実デバイスおよび(2)基準に一致するデバイス・グループに関連付けるために使用します。デバイス・グループとデバイス・アセットの関係を示す関連付けの例については、図68-3を参照してください。

図68-3 デバイス・グループに関連付けられたデバイス

図68-3の説明が続きます
「図68-3 デバイス・グループに関連付けられたデバイス」の説明

デバイス・アセットは、デバイス検出によってデバイス・グループに関連付けられます。デバイス・アセットが2つ以上のデバイス・グループで指定される基準に一致する場合、デバイス・アセットは希望する(優先順位が最も高い)デバイス・グループに自動的に関連付けられます。デバイスがすべてのデバイス・グループの基準に一致しない場合、デフォルトのデバイス・グループ(デスクトップ・ブラウザへのWebサイトの提供に使用される)に自動的に割り当てられます。デバイスがデバイス・グループに関連付けられたら、そのデバイス・グループに関連付けられているテンプレートがプレビュー・モードでWebサイト・コンテンツをレンダリングできます。コンテンツは、デバイス・イメージ上で上書きされます。


注意:

コンテンツ・コントリビュータが次のプレビュー動作を認識していることを確認してください。

  • モバイル・デバイスのWebページのプレビューがすべてのブラウザで機能しているときに、ブラウザとユーザー・エージェント間で不一致がある場合には、一部の機能が正しく表示されません。たとえば、ユーザー・エージェントがAndroid上のFireFoxであるときに、Internet ExplorerでContributorインタフェースを開くと、ブラウザはInternet Explorerエンジンを使用してHTMLをレンダリングします。したがって、Contributorインタフェースのプレビューは、実モバイル・デバイス上の実際のページ表示とは異なる可能性あります。

  • プレビューでは、実デバイス上のフルスクリーン・モード表示でページがレンダリングされます。


デバイスの作成手順については、第68.4.5項「手順5: デバイス・アセットの作成」を参照してください。

68.2.4 サイト・プラン

サイト・プランは、Webサイトのナビゲーショナル階層を定義します。たとえば、図68-4は、Contributorインタフェースのavisportsサンプル・サイト用の次のサイト・プラン(DefaultTouchおよびNonTouch)を示しています。

図68-4 Contributorインタフェースのサイト・プラン

図68-4の説明が続きます
「図68-4 Contributorインタフェースのサイト・プラン」の説明

サイト・プランを作成する場合、共有接尾辞を選択することによって、デバイス・グループをそのサイト・プランに関連付けます。そのサイト・プランによって定義されるサイト・ナビゲーションは、それらのデバイス・グループのデバイスに提供されます。(選択すると、その接尾辞は他のサイト・プランに対して使用できなくなります。)

サイト・プランの作成には、次の2つの基本的な方法があります。

  • すべてのデバイス・グループのすべてのデバイスの単一サイト・プランを作成します。

  • 複数のサイト・プランを作成します。デバイス・グループごとに異なるサイト・プランを設けることで、異なるナビゲーションが可能になります。コンテンツはサイト・プラン間で再利用することもできれば、サイト・プランごとに変えることもできます。

サイト・プランの構成手順については、第68.4.6項「手順6: サイト・プランの作成」を参照してください。

68.2.5 モバイル・テンプレート

モバイルWebサイトをレンダリングするテンプレートを作成するには、次の2つの基本的な方法があります。

  • すべてのモバイル・デバイス(つまり、すべてのデバイス・グループ)に適応する単一セットのテンプレートを作成します。Adaptiveテンプレートは、デバイスの画面解像度に適応し、コンテンツを適切にレンダリングします。このシナリオでは、接尾辞の付いたテンプレートを作成する必要はありません。

  • 異なるデバイス・グループ用に異なるテンプレートを作成します。(その例が第68.2.2項「デバイス・グループと接尾辞」で説明されています。)

    このシナリオでは、2セットのテンプレートを作成する必要があります。1つのセットには基本テンプレート(接尾辞なし)を含めます。他のセットには、テンプレート・バリアント(接尾辞付きテンプレート)を含めます。テンプレート・バリアントを作成するには、基本テンプレートの名前に_suffixを追加します。

    たとえば、接尾辞Touchが付いたiPhonesというデバイス・グループを作成する場合、テンプレートはBaseTemplateName_Touchになります。このネーミング規則、およびデバイス・グループとテンプレートの接尾辞の照合により、WebCenter Sitesで、モバイル・デバイスから適切なテンプレート・バリアントへリクエストがルーティングされるようになります。特定のデバイス・グループにモバイル・テンプレート・バリアントが存在しない場合は、かわりに基本テンプレートが使用されます。


    注意:

    WebCenter Sitesは2つの接尾辞(_Touch_NonTouchなど)を持つテンプレートを認識しないため、このようなテンプレートは、Contributorインタフェースのアセット・ツールバーのページ・レイアウトの選択オプションを介して使用できません。2つの接尾辞を持つテンプレートを作成すると、このテンプレートは既存のテンプレートのバリアントとは見なされないため、アセットのレンダリングには使用されません。かわりに、基本テンプレートが使用されます。


デバイス・グループを作成し、接尾辞を指定した後はいつでもテンプレート・バリアントを作成できます。テンプレートの作成の詳細は、第68.4.8項「ステップ8: テンプレートの作成」を参照してください。

68.3 Mobility機能を構成するための前提条件

Mobility機能の構成を開始する前に、次の資格証明と情報を持っていることを確認します。

68.4 Mobility機能の構成

この項の内容は、次のとおりです。

68.4.1 手順1 「モビリティ」タブの有効化

「管理」インタフェースの「モビリティ」タブへのアクセスを自動的に付与されるユーザーは、WebCenter Sitesインストール・プロセス中にその資格証明が使用されたユーザーのみです。このユーザーには、MobileSitesDeveloperロールが自動的に割り当てられています。他のユーザーがこのタブを使用するには、MobileSitesDeveloperロールを明示的に割り当てる必要があります。

68.4.2 手順2: デバイス・リポジトリの設定

この手順には、次のデバイス・リポジトリのいずれかを使用するオプションがあります。

68.4.2.1 どのデバイス・リポジトリがアクティブかの判別

  1. 「モビリティ」タブで、「デバイス・リポジトリ」ノードをダブルクリックします。

  2. 「デバイス・リポジトリ・アップローダ」フォームで、「デフォルト・リポジトリ」(devices.xmlがアクティブであることを意味する)またはWURFLファイル(複数のファイルのうちのいずれか)のどちらのリポジトリが選択されているかを確認します。

    図68-5 デバイス・リポジトリ・アップローダ

    図68-5の説明が続きます
    「図68-5 デバイス・リポジトリ・アップローダ」の説明

  3. 次の手順のいずれかに進みます。

68.4.2.2 デフォルトのデバイス・リポジトリの変更

この手順では、次のことを確認します。

  • devices.xmlファイルに、必要なデバイス名とユーザー・エージェントが含まれていること。

  • devices.xmlファイルがアクティブであること。

devices.xmlファイルを設定するには:

  1. <WebCenterSites>\11gR1\Sites\11.1.1.8.0\Shared\Storage\DeviceRepository\902\235\devices.xmlディレクトリでdevices.xmlを検索します。必要な変更を行ってから、この手順を続行します。

  2. devices.xmlをWebCenter Sitesにアップロードします:

    1. Adminインタフェースで、「モビリティ」タブに移動します。

    2. 「デバイス・リポジトリ」をダブルクリックします。

    3. 「デバイス・リポジトリ・アップローダ」フォームで、デフォルトで選択されていない場合は、「デフォルト・リポジトリ」オプションを選択します。

    4. 「デフォルト・リポジトリのアップロード」セクションで「参照」をクリックして、devices.xmlへのパスを選択します。


      注意:

      devices.xmlでデバイス名を変更した場合は、すでに作成している可能性のあるすべてのデバイス・グループの対応するデバイス名を更新してください。


    5. 「保存」アイコンをクリックします。

  3. 第68.4.3項「手順3: デバイス・グループの構成」に進みます。

68.4.2.3 サード・パーティのデバイス・リポジトリのアップロード

devices.xmlファイルですでに登録されているものより多くの機能およびデバイスのサポートが必要な場合は、WURFLをデバイス・リポジトリとして使用できます。WURFLはWURFL.zipとして、またはwurfl.xmlとそのパッチ・ファイルとしてアップロードできます。


注意:

WURFLは、サード・パーティのデバイス・リポジトリです。このリポジトリを使用するには、ライセンスを購入する必要があります。

wurfl.xmlファイルとパッチを使用する場合は、この手順を開始する前にパッチ・ファイルが構成されていることを確認してください。


WURFLをアップロードするには:

  1. Adminインタフェースで、「モビリティ」タブに移動します。

  2. 「デバイス・リポジトリ」をダブルクリックします。

  3. 「デバイス・リポジトリ・アップローダ」フォームの「WURFL」セクションに移動して、完全なWURFL zipファイル、またはメインwurfl.xmlファイルとパッチ・ファイルのいずれかをアップロードします。


    注意:

    WURFL.patchファイルがアップロードされると、デバイス・リポジトリ表のWURFL.patchのレコードがまだActive=F (false)に設定されていることとは関係なく、このファイルがWURFL.xmlファイルと一緒に使用されます。


  4. 第68.4.3項「手順3: デバイス・グループの構成」に進みます。

68.4.3 手順3: デバイス・グループの構成

デバイス・グループを構成するには:

  1. 「モビリティ」タブで、「デバイス・グループ」ノードを開きます。

  2. 図68-6に示すように、「デバイス・グループの追加」をクリックします。

    図68-6 デバイス・グループの追加

    図68-6の説明が続きます
    「図68-6 デバイス・グループの追加」の説明

    図68-7に示すように、「デバイス・グループ」フォームが表示されます。

    図68-7 「デバイス・グループ」フォーム

    図68-7の説明が続きます
    「図68-7 「デバイス・グループ」フォーム」の説明

  3. 「デバイス・グループ」フォームで「コンテンツ」タブを選択して、次の操作を実行します。

    1. 「名前」フィールドに、作成しているデバイス・グループのわかりやすい名前を入力します。

    2. 「接尾辞」セクションで、このデバイス・グループ(図68-7)用に作成するテンプレートで使用する接尾辞を入力します。既存の接尾辞がある場合は、それを選択できます。


      注意:

      この接尾辞は編集できません。後で変更したい場合は、このデバイス・グループを再作成して、この接尾辞を変更する必要があります。


    3. 「アクティブ」フィールドで「はい」を選択すると、このデバイス・グループのデバイス検出が有効になります。


      注意:

      デバイス・グループはグローバルです。有効化すると、すべてのサイトで利用できるようになります。同様に、無効化すると、すべてのサイトで利用不可になり、デバイス検出で使用されなくなります。


  4. 「基準」タブ(図68-8)を選択し、適切なテンプレート・バリアントに関連付けることのできる、実デバイスのマッチング用のルール・セットを作成します。

    1つ以上のデバイス名を入力するか(残りのフォームは無効になる。図68-8を参照)、デバイス名を省略して残りのフォームに記入します。

    図68-8 デバイス名の追加

    図68-8の説明が続きます
    「図68-8 デバイス名の追加」の説明

    1. デバイス名を入力する場合は、第68.4.2項「手順2: デバイス・リポジトリの設定」で使用することを選択したデバイス・リポジトリに登録されているのと同じ名前を入力します。devices.xmlをアップロードした場合は、デバイス・エントリ名を入力します。WURFLをアップロードした場合は、デバイスのmodel_nameを入力します。


      注意:

      デバイスは、一度に1つのデバイス・グループにしか属することができません。


      第68.4.4項「手順4: デバイス・グループに優先順位を付ける」に進みます。

    2. デバイス名を省略する場合は、次のように、残りのフォームを記入します。

      1. 「ユーザーエージェント」セクション。(このセクションは、デバイス名を指定する場合は無効になります。)

        このフィールドには、デバイス名のリスト、またはユーザー・エージェント、画面ディメンション、機能およびカスタム・フィルタの組合せを入力できます。ユーザー・エージェントregex、機能、画面ディメンションおよびカスタム・フィルタの組合せでは、デバイスは、デバイス・グループとの照合に使用されるすべてのルールを満たす必要があります。

        受信リクエストの送信元のブラウザと一致するユーザー・エージェントを入力します。または、ユーザー・エージェントのセットと照合する正規表現や部分文字列を入力することもできます。たとえば、すべてのiPhoneユーザー・エージェントを照合するには、ユーザー・エージェントreg exp(m|M)ozilla/5.0(| )\(i(p|P)(hone|od|rod).*として指定します。この式は、iPhone Java regexを含むすべてのユーザー・エージェント文字列に一致します。または、すべてのiPhoneに一致する部分文字列iPhone;を使用することもできます。

      2. 「機能」セクション。(このセクションは、デバイス名を指定する場合は無効になります。)

        その機能は、「タッチ・スクリーン」、「JavaScript」、「縦横方向」および「タブレット」です。各機能には、「はい」「いいえ」「評価しない」というオプションがあります。

        たとえば、このデバイス・グループでJavaScriptをサポートしないタブレット・デバイスのみを照合するには、「タブレット」機能で「はい」を、「JavaScript」機能で「いいえ」を、残りの機能で「評価しない」を選択します。

      3. 「画面解像度」セクション。(このセクションは、デバイス名を指定する場合は無効になります。)

        表示領域の幅および高さの最小値および最大値を入力します(ピクセル単位)。たとえば、最大幅640を指定する場合は、画面解像度の幅が640以下であるすべてのデバイスがこのデバイス・グループに一致します。

      4. 「カスタム・デバイス・フィルタ」セクションで「参照」をクリックして、「デバイス・グループ」の「基準」タブにリストされていない機能に対して条件を適用するために作成した可能性のあるカスタム・フィルタを選択します。カスタム・フィルタを作成してデバイス基準を設定する方法については、第68.4.3.1項「デバイス・グループ基準に対するカスタム・フィルタの作成」を参照してください。

  5. 「保存」アイコンをクリックして、デバイス・グループを保存します。

    新しいデバイス・グループが「モビリティ」タブで、「デバイス・グループ」ノードの最下部にリストされます(図68-9)。

    図68-9 新しいデバイス・グループ

    図68-9の説明が続きます
    「図68-9 新しいデバイス・グループ」の説明


    注意:

    デバイス・グループに優先順位を付けてデバイス・アセットを作成したら、デバイス検出によって正しく関連付けられていることを確認できます。そのためには、デバイス・グループを開いて「デバイス」タブを選択し、そのデバイス・グループに関連付けられているデバイス・アセットのリストを表示します。

    デバイス・グループに優先順位を付ける手順については、第68.4.4項「手順4: デバイス・グループに優先順位を付ける」を参照してください。

    デバイス・アセットの作成手順は、第68.4.5項「手順5: デバイス・アセットの作成」を参照してください。


  6. 第68.4.4項「手順4: デバイス・グループに優先順位を付ける」に進みます。

68.4.3.1 デバイス・グループ基準に対するカスタム・フィルタの作成

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引数属性の可能な値は、stringnumberbooleanです。デフォルト値は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-3 DeviceGroupFilterインタフェースおよびmatchesメソッドを実装するJavaクラス

public class UserDefinedCustomFilter implements DeviceGroupFilter
{
public boolean matches(DeviceContext context)
    {
       // Logic that returns true/false depending on whether criteria matched or not.
    }
}

68.4.4 手順4: デバイス・グループに優先順位を付ける

実行時のデバイス検出で、優先順位が最も高いデバイス・グループに実デバイスが自動的に関連付けられるように、複数のデバイス・グループに優先順位を付ける必要があります。

デバイス・グループに優先順位を付けるには:

  1. 「モビリティ」タブで、「デバイス・グループ」ノードを開きます。

  2. 「デバイス・グループの並替え」(図68-10)をダブルクリックします。

    図68-10 デバイス・グループの並替え

    図68-10の説明が続きます
    「図68-10 デバイス・グループの並替え」の説明

  3. 「デバイス・グループの並替え」画面で、希望する優先順位順にデバイス・グループをドラッグ・アンド・ドロップします(図68-11)。

    図68-11 デバイス・グループのドラッグ・アンド・ドロップ

    図68-11の説明が続きます
    「図68-11 デバイス・グループのドラッグ・アンド・ドロップ」の説明

    デバイス・グループを並べ替えたら、「デバイス・グループの並替え」画面に新しい順序でデバイス・グループが表示されます(図68-12)。

    図68-12 並べ替えられたデバイス・グループ

    図68-12の説明が続きます
    「図68-12 並べ替えられたデバイス・グループ」の説明

  4. 「優先順位の保存」をクリックします。

    「デバイス・グループの優先順位の再設定が正常に行われました」メッセージが表示されます。

  5. 第68.4.5項「手順5: デバイス・アセットの作成」に進みます。

68.4.5 手順5: デバイス・アセットの作成

デバイス・アセット作成するには:

  1. 「モビリティ」タブで、「デバイス」ノードを開きます。

  2. 「デバイスの追加」(図68-13)をクリックします。

    図68-13 デバイスの追加

    図68-13の説明が続きます
    「図68-13 デバイスの追加」の説明

    図68-14に示すように、「デバイス」フォームが表示されます。

    図68-14 「デバイス」フォーム - 「コンテンツ」タブ

    図68-14の説明が続きます
    「図68-14 「デバイス」フォーム - 「コンテンツ」タブ」の説明

  3. 「コンテンツ」タブ(図68-14)で、次の操作を実行します。

    1. 「名前」フィールドに、このデバイス・アセットの名前を入力します。

      入力した名前は、Contributorインタフェースに表示されます。デバイス・リポジトリ内の名前と一致している必要はありません。

    2. (オプション)。「製造業者」フィールドに、デバイス・メーカーの名前を入力します。

    3. 「ユーザー・エージェント」フィールドで、イメージを追加するデバイスの登録済ユーザー・エージェントを指定します。ユーザー・エージェントは、デバイス・リポジトリからコピーできます。


      注意:

      「ユーザー・エージェント」フィールドは、このデバイス・アセットが表す実デバイスを識別します。このフィールドは、優先順位が一番高い、一致するデバイス・グループにこのデバイスを関連付けするために、デバイス検出ロジックで使用します。


    4. 「ユーザー・エージェントのテスト」をクリックしてデバイス検出を実行し、このデバイスが特定のデバイス・グループに一致していることを確認します。

    5. デバイス検出で、このデバイス・アセットをデバイス・グループに関連付けることができるように、「有効化」チェック・ボックスを選択します。

    6. 「デバイス・イメージ」フィールドの隣にある「参照」をクリックして、イメージの保存先ディレクトリからデバイス・イメージを選択します。

    7. (オプション)。「サムネイル・イメージ」フィールドの横に、サムネイル・イメージをアップロードします。このサムネイル・イメージは、Contributorインタフェースのプレビュー機能に関連付けられているデバイス・セレクタ・パネルに表示されます。サムネイルを選択すると、デバイス・イメージのページ・プレビューが表示されます。

  4. 「画面ディメンション」タブで、「高さ」「幅」「上」および「左」の各フィールドに必要なピクセルを入力し、「ピクセル率」フィールドにピクセル率を入力して、画面領域の適切なディメンションを決定します。

    各フィールドにピクセルを入力すると、デバイス・イメージの画面領域もそれに応じてリセットされ始めます。この機能により、デバイス表示領域の正確なディメンションをその場で決定できます。

    図68-15 「画面ディメンション」タブ

    図68-15の説明が続きます
    「図68-15 「画面ディメンション」タブ」の説明

  5. フォーム上の「保存」アイコンをクリックして、新しいデバイスを作成します。

    成功メッセージが表示されます。

  6. 第68.4.6項「手順6: サイト・プランの作成」に進みます。

68.4.6 手順6: サイト・プランの作成

複数のサイト・プランと単一のサイト・プランのどちらが必要かは、設計方法により異なります。

サイト・プランを作成している場合、共通の接尾辞を選択することによって、デバイス・グループをそのサイト・プランに関連付けます。選択した接尾辞は、他のサイト・プランで使用できなくなります。

サイト・プランを作成するには:

  1. Adminインタフェースで「管理」タブを開き、「サイト」ノードとサイト・プランの作成場所であるサイトを開きます。


    注意:

    SiteAdminロールが割り当てられている場合は、かわりに「サイト管理者」タブを使用します。


  2. 「サイト・プラン」ノードを開きます。

  3. 「新規追加」(図68-16)をダブルクリックします。

    図68-16 「管理」タブの「サイト・プラン」ノード

    図68-16の説明が続きます
    「図68-16 「管理」タブの「サイト・プラン」ノード」の説明

    「サイト・プランの追加」ページが表示されます(図68-17)。

    図68-17 サイト・プランの追加

    図68-17の説明が続きます
    「図68-17 サイト・プランの追加」の説明

  4. 「名前」フィールドに、サイト・プランのわかりやすい名前を入力します。

  5. (オプション)「説明」フィールドに、サイト・プランの説明を入力します。

  6. デバイス・グループをこのサイト・プランに関連付けるには、「接尾辞」セクションに移動して、これらのデバイス・グループによって使用される接尾辞を選択します。


    注意:

    「接尾辞」セクションには、サイト・プランに割り当てられていない接尾辞のみがリストされます。


    「関連付けられたデバイス・グループ」パネル(図68-18)に、選択した接尾辞に関連付けられているデバイス・グループがリストされます。

    図68-18 「関連付けられたデバイス・グループ」パネル

    図68-18の説明が続きます
    「図68-18 「関連付けられたデバイス・グループ」パネル」の説明

  7. 「追加」をクリックして、サイト・プランを完了します。

    図68-19のような画面が表示されます。

    図68-19 作成された新しいサイト・プラン

    図68-19の説明が続きます
    「図68-19 作成された新しいサイト・プラン」の説明

  8. 「サイト・プラン」タブをクリックして、新しく作成されたサイト・プランを表示します。

    サイト・プランを修正するには、「管理」タブ上のサイト・ノードの下にあるサイト・プランをダブルクリックします。「サイト・プランの修正」ページで、必要な変更を行ってから、「修正」をクリックします。第68.4.7項「手順7: サイト・プランの編成」に進みます。

68.4.7 手順7: サイト・プランの編成

AdminおよびContributorインタフェースでサイト・プランを特定の順序で表示する必要がある場合には、それを並べ替えることができます。

サイト・プランを編成するには:

  1. Adminインタフェースで「管理」タブを開き、「サイト」ノードとサイト・プランに優先順位を付けるサイトを開きます。


    注意:

    SiteAdminロールが割り当てられている場合は、かわりに「サイト管理者」タブを使用します。


  2. 「サイト・プランの並替え」をダブルクリックします。

    図68-20 サイト・プランの並替え

    図68-20の説明が続きます
    「図68-20 サイト・プランの並替え」の説明

  3. 「サイト・プランの並替え」画面(図68-21)で、サイト・プランをドラッグ・アンド・ドロップして、希望の順序に並べ替えます。

    図68-21 サイト・プランのドラッグ・アンド・ドロップ

    図68-21の説明が続きます
    「図68-21 サイト・プランのドラッグ・アンド・ドロップ」の説明

    サイト・プランを並べ替えたら、「サイト・プランの並替え」画面が図68-22のように表示されます。

    図68-22 並べ替えられたサイト・プラン

    図68-22の説明が続きます
    「図68-22 並べ替えられたサイト・プラン」の説明

  4. 「保存」をクリックします。

    「修正に成功しました。」メッセージが表示されます。

  5. 第68.4.8項「手順8: テンプレートの作成」に進みます。

68.4.8 手順8: テンプレートの作成

モバイルWebサイトをレンダリングするテンプレートを作成するには、次の2つの基本的な方法があります。

  • すべてのモバイル・デバイス(つまり、すべてのデバイス・グループ)に適応する単一セットのテンプレートを作成します。

  • 異なるデバイス・グループ用に異なるテンプレートを作成します。このシナリオには接尾辞を使用する必要があります。

この項では、2番目の方法について説明します。この項の内容は、次のとおりです。

68.4.8.1 テンプレート・バリアントを作成するための基本ガイドライン

異なるデバイス・グループ用の異なるテンプレートを作成する際には、次の要件に注意してください。

  1. 基本テンプレート(デスクトップWebサイトをレンダリングするテンプレート)を作成します。

  2. 基本テンプレートの名前を使用し、_suffixを追加して、テンプレート・バリアントを作成します。

  3. テンプレートに基づいてページをキャッシュする場合は、キャッシュ基準の1つとして接尾辞(dパラメータ)を使用する必要があります。

68.4.8.2 Mobilityのタグ

表68-1では、テンプレートの作成時に使用するMobilityのタグについて説明しています。このタグの詳細は、Oracle Fusion Middleware WebCenter Sitesタグ・リファレンスを参照してください。

表68-1 Mobilityのタグ

タグ 説明

<device:load name="<Name of Current Device>" />

現在のデバイスを検出して、デバイス情報をロードします。asset:loadと同様。

<device:get name="<Name of Current Device>" property="useragent|devicegroup|suffix" [output="propName"] />

このタグは、ロードされたデバイスに対してuseragentdevicegroupまたはsuffixプロパティのいずれかの値を返します。オプション属性outputが指定されている場合、プロパティの値をoutput変数に設定します。output属性がない場合、プロパティの値を、そのプロパティの名前を持つ変数に設定します。

<device:if name="<Name of Current Device>" property="touch" value="true" [datatype="boolean"] [operator="equals"] > ... conditional code for touch devices only ... </device:if>

このタグでは、現在ロードされているデバイスに対して特定の条件や、その条件が満たされると実行されるコードを指定できます。オプション属性datatypeのデフォルト値はStringで、オプション属性operatorのデフォルト値は"="です。

<device:hascapability name="<Name of the Device Loaded Earlier>" capability="<WURFL_CAPABILITY_NAME>" > conditional code </device:hascapabiilty>

このタグは、現在ロードされているデバイスが、このタグで指定された機能をサポートしているかどうかをチェックします。デバイスがこの機能をサポートしている場合、タグのコードが実行されます。

<device:capability name="<Name of the Device Loaded Earlier>" capability="<WURFL_CAPABILITY_NAME>" output="capabilityValue" />

このタグは、現在ロードされているデバイスに対して、icsスコープ内の指定された機能の値を設定します。

<device:siteplan output=<NAME_OF_VARIABLE_HOLDING_RESULTING_SITEPLAN_ID> [pubid = <%=ics.GetVar("pubid")%>] [site=<%=ics.GetVar("site")%>] [d= <%=ics.GetVar("d")%>] />

device:siteplanタグを使用して、デバイスのサイト・プランを検索できます。タグは、デバイス・グループの接尾辞である、dパラメータをとります。

実行時に、WebCenter Sitesではデバイス検出を使用して、dパラメータの値を計算します。タグは、dパラメータ(つまり、接尾辞)の値を使用して、同じ接尾辞を持つサイト・プランを検索し、そのサイト・プランのIDを返します。サイト・プランIDは、Webサイト・ナビゲーションを構築するために他のタグによって使用されます。


68.4.8.3 デバイス保護とページ・レンダリングをサポートするために変更されるタグ

次のタグには、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項「デバイス検出」を参照してください。

68.5 デバイス検出

WebCenter Sitesは、組込みのデバイス検出メカニズムを使用して、Webサイトのコンテンツを要求するデバイスを識別します。デバイスが特定されると、WebCenter Sitesは一致するデバイス・グループを検索して、その接尾辞を読み取ります。WebCenter Sitesは、接尾辞を使用してサイト・プランを見つけ、テンプレート・バリアントを呼び出してそのコンテンツをレンダリングします。

詳細な手順は次のとおりです。

  1. 実デバイスからのページ・リクエストがリモートSatellite Serverで受信されます。このリクエストのヘッダーには、デバイスのユーザー・エージェントが含まれます。

  2. リモートSatellite Serverは独自のキャッシュ内でそのページを検索します。ページの検索に失敗すると、リモートSatellite ServerはWebCenter Sitesにページ・リクエストを送信します。

  3. WebCenter Sitesは次のように応答します。

    1. リクエスト・ヘッダーのユーザー・エージェントによってデバイスを識別します。

    2. デバイス・リポジトリでユーザー・エージェントを検索します。

    3. デバイス・リポジトリで一致するデバイスを見つけると、WebCenter Sitesはそのデバイスの機能も検索します。

    4. WebCenter Sitesはユーザー・エージェント機能とデバイス機能を使用して、基準に合ったデバイス・グループを検索します。

    5. そのデバイスを優先順位の一番高いデバイス・グループに関連付けます。

    6. このデバイス・グループの接尾辞を読み取ります。

    7. その接尾辞をicsスコープ内のdパラメータに割り当てます。

    8. _suffixをURLで要求されたテンプレート名に追加します。

    9. 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

    10. テンプレート・バリアントが存在する場合、WebCenter Sitesは新しいURLを実行してそのページをキャッシュし、それをリモートSatellite Serverに送信します。

      テンプレート・バリアントが存在しない場合、WebCenter Sitesは元のURLを実行してそのページをキャッシュし、それをリモートSatellite Serverに送信します。

  4. リモートSatellite Serverはそのページをキャッシュして、デバイスにレスポンスを送信します。

  5. リモートSatellite Serverは、デバイス検出情報もキャッシュして、それを同じデバイスからの後続のリクエストを処理するために使用します。これにより、WebCenter Sitesでのデバイス検出の再実行が回避されます。