リダイレクションを使用してモバイル ホーム ページをカスタマイズする

最終更新日: 2011年2月2日

適用対象: SharePoint Foundation 2010

ホーム ページのリダイレクト」で説明されているように、Microsoft SharePoint Foundation には、ホーム ページ専用のリダイレクトの第 2 システムがあります。このトピックでは、モバイル ユーザーに特定のサイトの種類用の代替ホーム ページが表示されるように、この第 2 システムを変更する方法について説明します。

注意

ホーム ページのリダイレクトが呼び出されるのは、モバイル ユーザーが Web サイトのホーム ページに次のどちらかの方法でアクセスした場合のみです。

  • ホーム ページとして default.aspx を指定する (http://MyServer/MyWebSite/default.aspx)。

  • ページ ファイルを指定しないで、/m/ を Web サイトの URL の末尾に付加する (http://MyServer/MyWebSite/m/)。これは、従来の MobileRedirection 機能がアクティブ化されている場合にのみ使用できます。詳細については、「モバイル ページとリダイレクト システムの概要」を参照してください。

/m/ を使用するか、URL の default.aspx の後に ?Mobile=1 を追加することで、コンピューターのブラウザーからリダイレクトを呼び出すことができます。

このトピックで説明する変更方法は、単に Web サイトの URL のみ (http://MyServer/MyWebSite/) で Web サイトのホーム ページにアクセスするモバイル ユーザー、または default.aspx 以外のページ (http://MyServer/MyWebSite/HomePage.aspx) を指定して Web サイトのホーム ページにアクセスするモバイル ユーザーには無効です。

ホーム ページのリダイレクトは、バイレベルのリダイレクト メカニズムを使用します。モバイル デバイスでは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE にあるモバイルの default.aspx ページに最初にリダイレクトされます。default.aspx ページは、その後、次のシーケンスを使用し、現在のサイト定義の種類に従って、ユーザーを実際のホーム ページにリダイレクトします。

  1. default.aspx 内の唯一のコンテンツは、ランタイムに対して MobileHomePageRedirect と呼ばれる RenderingTemplate を使用するように指示するコントロールです。

  2. ランタイムは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES の .ascx ファイルから読み込まれたすべてのレンダリング コントロールの記憶域で、この名前の RenderingTemplate を検索します。これは MobileDefaultTemplates.ascx ファイル内にあります。

  3. MobileHomePageRedirect コントロールの Template プロパティは、ランタイムをクラス SPMobileWebUrlRedirect のオブジェクトにポイントします。

  4. SPMobileWebUrlRedirect オブジェクトは、パターン Mobile_SiteTypeID_HomePage_Redirect を使用して別の RenderingTemplate の名前を構成します。ここで SiteTypeID は、SharePoint Foundation に含まれるサイト定義の名前 (STS、SGS、BLOG など)、または、ユーザー設定サイト定義の ID 番号 (10001 など) です (詳細については、SPMobileWebUrlRedirect クラスに関する参照トピックを参照してください)。

  5. ランタイムは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES の .ascx ファイルから読み込まれたすべてのレンダリング テンプレートで、この 2 番目の RenderingTemplate を検索します。

    • SiteTypeID が BLOG の場合、ランタイムは MobileDefaultTemplates.ascx で Mobile_BLOG_HomePage_Redirect RenderingTemplate を検索します。後者のコントロールの Template プロパティは、ランタイムを SPMobileHomePageRedirection クラスのオブジェクトにポイントします。このクラスの PageFileName プロパティは、bloghome.aspx がホーム ページであることを指定します。

    • SiteTypeID が BLOG ではなく、ユーザー設定の .ascx ファイルが作成されていない場合、ランタイムは MobileDefaultTemplates.ascx の Mobile_Default_HomePage_Redirect RenderingTemplate を使用します。後者のコントロールの Template プロパティは、ランタイムを SPMobileHomePageRedirection クラスのオブジェクトにポイントします。このクラスの PageFileName プロパティは、mblwp.aspx がホーム ページであることを指定します。

ユーザーを別のモバイル ホーム ページにリダイレクトするユーザー設定コントロールを作成できます。

手順

リダイレクトを使用してモバイル ホーム ページを置き換えるには

  1. Microsoft Visual Studio で、空の SharePoint プロジェクトを作成し、そのプロジェクトをサンドボックス ソリューションではなくファーム ソリューションにします。

  2. [SharePoint のマップされたフォルダー] を TEMPLATE\LAYOUTS\MOBILE に追加します。

  3. 新しいフォルダーを右クリックし、新しいホーム ページとなるようにプレーン テキスト ファイルを追加して、そのファイルに .aspx 拡張子付きの名前 (例: ContosoHomePage.aspx) を付けます。Visual Studio は、ファイルを SharePoint ソリューション マニフェストに自動で追加し、そのファイルが %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE に展開されるように設定します。

    ヒントヒント

    SharePoint の [アプリケーション ページ] アイテムをプロジェクトに追加しないでください。Visual Studio は、そのアイテムと共に、モバイル ページに不適切ないくつかの展開オーバーヘッド フォルダーとファイル (およびファイルの既定のコンテンツ) を含めます。

  4. %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE から、mblwiki.aspx、mblwp.aspx、mblwpdetail.aspx、bloghome.aspx など、既存のページのコンテンツをユーザー設定ファイルにコピーします。

  5. 必要に応じて、ファイルのコンテンツを変更します (簡単なテストを行うには、mblwiki.aspx のコンテンツをコピーし、ヘッダーの前景と背景の色設定を入れ替えます。これにより、ページ タイトルは、濃いブルーグレーを背景とする既定の白の種類ではなく、白を背景とする濃いブルーグレーの種類になります)。

  6. [SharePoint のマップされたフォルダー] を TEMPLATE\ControlTemplates に追加します。

  7. 新しいフォルダーを右クリックして、[ユーザー コントロール] をフォルダーに追加します。他のソリューション プロバイダーと区別される名前を .ascx ファイルに付けます (例: ContosoHomePageRedirection.ascx)。Visual Studio は、ファイルを SharePoint ソリューション マニフェストに自動で追加し、ファイルが %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates に展開されるように設定します。

    ヒントヒント

    ソリューション エクスプローラーでプロジェクトを右クリックしてユーザー コントロールを追加しないでください。この方法でユーザー コントロールを追加すると、Visual Studio は、コントロールを TEMPLATE\ControlTemplates のサブフォルダーに追加し、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates の対応するサブフォルダーに展開します (コントロールを移動しなかった場合)。サブフォルダー内のモバイル版のレンダリング テンプレートは読み込まれません。

  8. .ascx.cs ファイルと .ascx.designer.cs (または .ascx.vb および .ascx.designer.vb) ファイルを削除します。これらのファイルはこのプロジェクトでは必要ありません。

  9. .ascx ファイルのディレクティブ セクション全体を次のマークアップで置き換えます。

    <%@ Register TagPrefix="GroupBoardMobile"   Namespace="Microsoft.SharePoint.Applications.GroupBoard.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#"   %> 
    <%@ Assembly Name="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %> 
    <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="SPMobile" Namespace="Microsoft.SharePoint.MobileControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register TagPrefix="WPMobile" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    
  10. レンダリング テンプレートを .ascx ファイルに追加し、次のフォーマットで ID を指定します。Mobile_SiteTypeID_HomePage_Redirect

    SiteTypeID には以下のいずれかを使用できます。

    • チーム サイト定義の名前 ("STS")

    • グループ作業サイト定義の名前 ("SGS")

    • 作成済みの任意のユーザー設定サイト定義の ID 番号 (名前ではありません)。

    Mobile_BLOG_HomePage_Redirect の RenderingTemplate は MobileDefaultTemplates.ascx で既に定義されています。このファイルは変更できません。Mobile_BLOG_HomePage_Redirect という名前の 2 つ目の RenderingTemplate をユーザー設定の .ascx ファイルに作成することもできますが、これにより、既存の Mobile_BLOG_HomePage_Redirect に依存する可能性のある他のインストール済みのユーザー設定ソリューションやサードパーティ ソリューションが破壊される恐れがあります。

    SharePoint Foundation に含まれる RenderingTemplate が事前に読み込まれるため、同じ名前のユーザー設定テンプレートが読み込まれると、標準のレンダリング テンプレートは無効になります。2 つ以上のユーザー設定 RenderingTemplate が同じ名前の場合は、ファイル名のアルファベット順が最後になるテンプレートが他のテンプレートよりも優先されます。特定のファイルに同じ名前のテンプレートが 2 つ以上ある場合は、これらのテンプレートは読み込まれません。

    注意

    MPS、CENTRALADMIN、TENANTADMIN、および従来の WIKI サイト定義では、モバイル デバイスからのアクセスがサポートされません。

    注意

    サイト定義の名前は、WebTemp.xml ファイル内の Template 要素の Name 属性で定義されます。サイト定義の ID は、同じ要素の ID 属性で設定されます。これらの属性の詳細については、「WebTemp.xml」を参照してください。

    重要重要

    サイト定義の Onet.xml ファイル内にあるサイト定義構成Configuration 要素には、WebFeatures 要素が必要で、この要素にはホーム ページのリダイレクト機能要素 <Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" /> が必要です。

    次の例は、Web サイトにアクセスするモバイル デバイスを STS サイト定義に基づいて ContosoHomePage.aspx にリダイレクトするテンプレートを示しています。

    <SharePoint:RenderingTemplate RunAt="Server"
       ID="Mobile_STS_HomePage_Redirect">
      <Template>
        <SPMobile:SPMobileHomePageRedirection RunAt="Server" 
          PageFileName="ContosoHomePage.aspx" />
      </Template>
    </SharePoint:RenderingTemplate>
    
  11. [ビルド] メニューで [ソリューションの展開] を選択します。これにより, .ascx ファイルが自動で保存され、2 つのファイルが展開され、Web アプリケーションがリサイクルされるので、そのフォルダー内のすべての .ascx ファイルが再度読み込まれます。

  12. 新しいホーム ページをモバイル デバイスまたはエミュレーターでテストします。代替ホーム ページを取得するか、オリジナルのホーム ページを取得するかは、使用する URL に厳密に依存します。詳細については、このトピックの前半を参照してください。

関連項目

概念

SharePoint Foundation によるモバイルの開発

その他の技術情報

モバイル開発の方法およびウォークスルー