この章では、Trinidadインフラストラクチャによって幅が狭い画面のサポートを特定する方法、およびEL式を使用してユーザー・エージェントの詳細を公開する方法について説明します。
この章には次の項が含まれます:
モバイル・デバイスには、様々な画面の幅の機種があります。その結果、WebアプリケーションのUIコンポーネントが、画面の幅が240ピクセルであるデバイス上では適切にレンダリングされても、画面の幅が100ピクセルしかないデバイス上でのアプリケーション実行時には正しくレイアウトされないことがあります。このような場合、Trinidadでは幅が狭い画面のデバイス向けにレンダリングが最適化されます。Trinidadでは、画面の幅が240ピクセル未満であるデバイスは、幅が狭い画面のデバイスであるとみなされ、それにあわせて次のコンポーネントのレンダリングが最適化されます。
tr:breadcrumbs
tr:inputText
tr:navigationPane
tr:panelFormLayout
tr:panelLabelAndMessage
tr:panelRadio
tr:processChoiceBar
tr:selectRangeChoiceBar
Trinidadでは画面の幅が240ピクセル未満であるデバイスのみが、幅が狭い画面のデバイスであるとみなされるため、240ピクセルよりも一般的に画面の幅が広いiPod (Safariブラウザ)またはBlackBerryスマートフォン(BlackBerryブラウザ)は、これには該当しません。Windows Mobileブラウザの場合、Trinidadにより、UA-pixels
リクエスト・ヘッダーから画面の幅が特定され、画面の幅が240ピクセル未満である場合にのみ、幅が狭い画面の最適化が適用されます。一方、他のすべてのユーザー・エージェントでは、Trinidadにより幅が狭い画面のデバイス用にレンダリングが最適化されます。
Trinidadでは、EL式#{requestContext.agent}
を使用して、リクエストしているユーザー・エージェントの詳細が公開されます。この式により、リクエストしているユーザー・エージェントを説明するagent
オブジェクトが返されます。この式に詳細の名前または機能の名前のプロパティを追加することによって、Trinidadから、ユーザー・エージェントの名前、バージョン、プラットフォーム、プラットフォームのバージョン、モデル(BlackBerryのみ)、およびブラウザのJavaScriptとPPR(部分ページ・レンダリング)のサポートを含む詳細が返されるように指定できます。ユーザー・エージェント詳細の公開の詳細は、7.2.1項「ユーザー・エージェントの詳細の特定方法」を参照してください。ブラウザの機能を特定する場合の詳細は、7.2.2項「ブラウザの機能の特定方法」を参照してください。
Trinidadでリクエストが受信されると、タイプ、エージェントの名前とバージョン、およびエージェントのプラットフォーム名とプラットフォーム・バージョンを含む、様々なユーザー・エージェントの詳細(表7-1)を示すユーザー・エージェント文字列が解析されます。Trinidadでは、EL式#{requestContext.agent.<detail-name>}
を使用してこれらの詳細が公開されます。たとえば、ユーザー・エージェントのタイプに適したカテゴリ(つまり、デスクトップ・ブラウザ用のdesktopまたはモバイル・ブラウザ用のPDA)を取得するために、Trinidadでは、EL式内で次のようにtype
詳細が使用されます。
#{requestContext.agent.type}
注意: Trinidadでは、PlatformName およびPlatformVersion のような詳細について、ユーザー・エージェント文字列からこれらを解析できなかった場合にnull値を返すことがあります。 |
表7-1 EL式を通じて公開されるブラウザの詳細
詳細の名前 | 説明 |
---|---|
|
ユーザー・エージェントのタイプを識別します。デスクトップおよびモバイル・ブラウザについて、それぞれ値はdesktopおよびPDAです。モバイル・デバイス上でSafariを実行した場合、すべてのデスクトップ・ブラウザ機能が提供されるため、エージェント・オブジェクトによりこの詳細がデスクトップ・タイプとして公開されます。 |
|
エージェントの名前。 |
|
エージェントのバージョン。 |
|
エージェントが実行されるプラットフォーム。 |
|
エージェントが実行されるプラットフォームのバージョン。 |
|
モバイル・デバイスのモデル。 |
Trinidadでは、ユーザー・エージェントに割り当てる機能に基づいて、ユーザー・エージェントのリクエストに対するレスポンスを送信します。これらの機能には、ユーザー・エージェントのJavaScriptおよびPPRのサポートが含まれます。これらの一部の機能(表7-2)は、EL式#{requestContext.agent.capabilities}
を通じて公開されます。
Trinidadによってユーザー・エージェントに割り当てられる具体的な機能を特定するには、EL式#{requestContext.agent.capabilities.<capability-name>}
を使用します。たとえば、TrinidadによってJavaScript機能がユーザー・エージェントに割り当てられるかどうかを特定するには、次のEL式を使用します。
# {requestContext.agent.capabilities.scriptingSpeed!='none'}
表7-2 EL式を通じて公開されるブラウザの機能
機能の名前 | 詳細 |
---|---|
|
Trinidadで幅が狭い画面のデバイス用にレンダリングが最適化されるかどうかを示します。Trinidadで幅が狭い画面のデバイス用にレンダリングが最適化される場合は、 |
|
ユーザー・エージェントに対するJavaScriptサポートを示します。ユーザー・エージェントによってJavaScriptがサポートされていない場合は、 |
|
ユーザー・エージェントに対するPPRサポートを示します。ブラウザによってPPRがサポートされている場合は、 |