モバイル Web パーツ ページとアダプター
最終更新日: 2011年2月2日
適用対象: SharePoint Foundation 2010
このトピックでは、Web パーツをモバイル デバイスでレンダリングするための SharePoint Foundation アダプター フレームワークの概要について説明します。
SharePoint Foundation のモバイル アダプター
開発者は、Microsoft ASP.NET 3.5 のモバイル アダプター システムのバリエーションを使用して、SharePoint Foundation Web サイト上の Web パーツ ページをモバイル デバイスでアクセスできるようにします。SharePoint Foundation のモバイル アダプター システムは基本的に同じです。
Web パーツ ページが要求されると、Web フロントエンド サーバーは、要求ヘッダーから、要求を行っているデバイスの種類を検出します。
モバイル デバイスからの要求の場合、ASP.NET は、要求されたページ上の各 Web パーツを compat.browser ファイル内で参照し、モバイル アダプターがある場合は、どのモバイル アダプターが Web パーツに関連付けられているかを確認します。
Init、Load、PreRender、および UnLoad() の各イベントでは、Web パーツにモバイル アダプターがある場合、Web パーツの独自のハンドラーではなく、イベント用のアダプターのハンドラーが呼び出されます。ただし、通常、アダプターのハンドラーはそのロジックの一部として Web パーツのハンドラーを呼び出します。
SharePoint Foundation では、この 4 つのイベントのアダプターのハンドラーの実装により、現在のページが WebPartMobilePage オブジェクトかどうかが確認されます。そうである場合、ランタイムは対応する On*ForMobile メソッド (OnLoadForMobile(EventArgs)、OnInitForMobile(EventArgs)、OnPreRenderForMobile(EventArgs)、または OnUnloadForMobile(EventArgs)) を呼び出します。
Microsoft ASP.NET 3.5 モバイル アダプター システムの詳細については、「Architectural Overview of Adaptive Control Behavior、Browser Definition File Schema (browsers Element)」と「System.Web.UI.Adapters.ControlAdapter」を参照してください。
SharePoint Foundation モバイル アダプター フレームワークのプログラミング
モバイル アダプター用の SharePoint Foundation フレームワークでの開発は、Microsoft ASP.NET 3.5 モバイル アダプター システムでの開発よりも実際に簡単です。Microsoft ASP.NET 3.5 システムの場合と同様に、モバイル デバイスからアクセスできるすべての Web パーツについてモバイル アダプター コントロールを作成し、compat.browser ファイル内で、そのアダプターと、そのアダプターでレンダリングを適合する Web パーツをマップします。
ただし、SharePoint Foundation フレームワークでの開発と Microsoft ASP.NET 3.5 でのモバイル アダプター開発には、いくつかの相違があります。ほとんどの場合、SharePoint Foundation のセキュリティ モデルに準拠するために、このような相違が必要になります。
アダプター クラスは、System.Web.UI.Adapters.ControlAdapter から直接ではなく、Microsoft.SharePoint.WebPartPages.WebPartMobileAdapter から派生します。
アダプター クラスは、安全なコントロールとして登録する必要があります。手順の詳細については、「Web.config ファイルを使用して作業する」を参照してください。
ControlAdapter から継承される Render(HtmlTextWriter) メソッドはオーバーライドしないでください。代わりに、CreateControlsForSummaryView() と CreateControlsForDetailView() のどちらかまたは両方のメソッドをオーバーライドします。
WebPartMobileAdapter が ControlAdapter から継承する OnLoad(EventArgs) メソッド、OnInit(EventArgs) メソッド、WebPartMobileAdapter.OnPreRender(EventArgs) メソッド、および OnUnload(EventArgs) メソッドはオーバーライドしないでください。これらのいずれかのイベントでロジックを追加する必要がある場合は、代わりに、Microsoft.SharePoint.WebPartPages.WebPartMobileAdapter の特別な SharePoint 対応の代替メソッドである OnLoadForMobile(EventArgs)、OnInitForMobile(EventArgs)、OnPreRenderForMobile(EventArgs)、および OnUnloadForMobile(EventArgs) の 1 つまたは複数をオーバーライドします。
重要 これらの 4 つのメソッドをオーバーライドする際の重要な注意点については、これらのメソッドに関するリファレンス トピックを参照してください。
モバイルでアクセス可能な Web パーツ ページは WebPartMobilePage クラスのオブジェクトですが、これを作成することはありません。モバイル デバイス ユーザーが、モバイル デバイス用に適合された Web パーツを含む Web パーツ ページに移動すると、実行時に WebPartMobilePage オブジェクトが作成され、モバイル デバイスに返されます。
モバイル デバイス用に適合された Web パーツを含む各 Web パーツ ページには、対応するアプリケーション ページがあり、適合された Web パーツの表示や順序を設定できます。このページは型 WebPartMobileSettingPage のオブジェクトです。このページも、ユーザーがそのページに移動する (通常は、Web パーツ ページのリボンのボタンがクリックされる) ときにランタイムで作成されます。したがって、このオブジェクトも作成する必要はありません。
関連項目
参照
System.Web.UI.Adapters.ControlAdapter
Microsoft.SharePoint.WebPartPages.WebPartMobileAdapter