Compartir a través de


Procedimiento para personalizar la página principal móvil mediante redireccionamiento

Última modificación: miércoles, 02 de febrero de 2011

Hace referencia a: SharePoint Foundation 2010

Como se describe en Redirección de página principal, Microsoft SharePoint Foundation tiene un segundo sistema de redirección únicamente para páginas principales. En este tema se explica cómo se puede modificar este sistema para que los usuarios móviles vean una página principal alternativa para un tipo de sitio específico.

Nota

La característica de redirección de página principal se invoca solo si el usuario móvil tiene acceso a la página principal de un sitio web mediante uno de estos métodos:

  • Especificando default.aspx como página principal: http://MyServer/MyWebSite/default.aspx

  • Sin especificar ningún archivo de paginación, pero anexando /m/ al final de la dirección URL del sitio web: http://MyServer/MyWebSite/m/. (Esto solo es posible si se ha activado la característica MobileRedirection heredada. Para obtener más información, vea Introducción a las páginas móviles y el sistema de redirección).

La redirección se puede invocar desde el explorador de un equipo mediante el uso de /m/ o agregando ?Mobile=1 después de default.aspx en la dirección URL.

El método de modificación que se describe en este tema no tiene ningún efecto para los usuarios móviles que tienen acceso a la página principal de un sitio web mediante la dirección URL del sitio web por sí sola (http://MyServer/MyWebSite/) o mediante la especificación de una página distinta de default.aspx (http://MyServer/MyWebSite/HomePage.aspx).

La característica de redirección de página principal usa un mecanismo de redirección de doble nivel. Los dispositivos móviles se redirigen inicialmente a la página default.aspx móvil ubicada en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE. A continuación, la página default.aspx redirige al usuario a la página principal propiamente dicha, de acuerdo con el tipo de definición de sitio actual, por medio de la secuencia siguiente:

  1. El único contenido de default.aspx es un control que indica al tiempo de ejecución que use una RenderingTemplate denominada MobileHomePageRedirect.

  2. El tiempo de ejecución busca en la memoria todos los controles de representación cargados de archivos .ascx en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES para una RenderingTemplate con este nombre. Encuentra uno en el archivo MobileDefaultTemplates.ascx.

  3. La propiedad Template del control MobileHomePageRedirect apunta el motor en tiempo de ejecución a un objeto de la clase SPMobileWebUrlRedirect.

  4. El objeto SPMobileWebUrlRedirect crea el nombre de otra RenderingTemplate mediante el modelo Mobile_SiteTypeID_HomePage_Redirect, donde SiteTypeID es el nombre de una definición de sitio que viene incluida en SharePoint Foundation, como STS, SGS, o BLOG, o el número de identificación de una definición de sitio personalizada, como 10001. (Para obtener más información, vea el tema de referencia sobre la clase SPMobileWebUrlRedirect).

  5. El tiempo de ejecución busca todas las plantillas de representación cargadas de archivos .ascx en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES para esta segunda RenderingTemplate.

    • Si SiteTypeID es BLOG, el tiempo de ejecución encontrará la Mobile_BLOG_HomePage_RedirectRenderingTemplate en MobileDefaultTemplates.ascx. La propiedad Template de este último control dirige el tiempo de ejecución a un objeto de la clase SPMobileHomePageRedirection cuya propiedad PageFileName especifica que bloghome.aspx es la página principal.

    • Si SiteTypeID no es BLOG y no se han creado archivos .ascx personalizados, el tiempo de ejecución usa la RenderingTemplateMobile_Default_HomePage_Redirect en MobileDefaultTemplates.ascx. La propiedad Template del segundo control dirige el tiempo de ejecución a un objeto de la clase SPMobileHomePageRedirection cuya propiedad PageFileName especifica que mblwp.aspx es la página principal.

Puede crear un control personalizado que redirija a los usuarios a una página principal móvil alternativa.

Procedimientos

Para reemplazar la página principal móvil mediante redirección

  1. En Microsoft Visual Studio, cree un Proyecto de SharePoint vacío. Conviértalo en una solución de granja de servidores, no en una solución de espacio aislado.

  2. Agregue una carpeta asignada de SharePoint a TEMPLATE\LAYOUTS\MOBILE.

  3. Haga clic con el botón secundario en la nueva carpeta, agregue un archivo de texto sin formato como nueva página principal y asígnele un nombre con una extensión .aspx. Por ejemplo, ContosoHomePage.aspx. Visual Studio agrega automáticamente el archivo al manifiesto de la solución de SharePoint y establece que se implemente en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ TEMPLATE\LAYOUTS\MOBILE.

    SugerenciaSugerencia

    No agregue un elemento Página de aplicación de SharePoint al proyecto. Visual Studio incluye con dichos elementos algunas carpetas y archivos de sobrecarga de implementación (y contenido predeterminado para el archivo) que no son adecuados para una página móvil.

  4. Copie el contenido de una página existente de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE, como mblwiki.aspx, mblwp.aspx, mblwpdetail.aspx o bloghome.aspx, en el archivo personalizado.

  5. Modifique el contenido del archivo según sea necesario. (Para realizar una prueba rápida, copie el contenido de mblwiki.aspx y, a continuación, cambie la configuración de color de primer y segundo plano en el encabezado de forma tal que el título de la página sea de color gris y azul oscuro sobre un fondo blanco en lugar del tipo predeterminado blanco sobre un fondo gris y azul oscuro).

  6. Agregue una Carpeta asignada de SharePoint a TEMPLATE\ControlTemplates.

  7. Haga clic con el botón secundario en la nueva carpeta y agregue un control de usuario a la carpeta. Asigne al archivo .ascx un nombre que lo distinga de los nombres de otros proveedores de soluciones. Por ejemplo, ContosoHomePageRedirection.ascx. Visual Studio agrega automáticamente el archivo al manifiesto de la solución de SharePoint y establece que se implemente en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates.

    SugerenciaSugerencia

    Para agregar el control de usuario, no haga clic con el botón secundario en el proyecto en el Explorador de soluciones. Cuando se agrega un control de usuario de esa manera, Visual Studio lo coloca en una subcarpeta de TEMPLATE\ControlTemplates y, si no se mueve, lo implementa en una subcarpeta correspondiente de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\ControlTemplates. Las plantillas de representación móvil en las subcarpetas no se cargan.

  8. Elimine los archivos .ascx.cs y .ascx.designer.cs (o .ascx.vb y .ascx.designer.vb). No son necesarios para este proyecto.

  9. Reemplace toda la sección de directivas del archivo .ascx con el siguiente marcado:

    <%@ 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. Agregue una plantilla de representación al archivo .ascx y asígnele un identificador con el siguiente formato: Mobile_SiteTypeID_HomePage_Redirect.

    SiteTypeID puede ser cualquiera de las siguientes opciones:

    • El nombre de la definición de sitio de grupo: "STS"

    • El nombre de la definición de sitio de grupo de trabajo "SGS"

    • El número de identificador (no el nombre) de cualquier definición de sitio personalizado que se ha creado.

    Ya hay una RenderingTemplateMobile_BLOG_HomePage_Redirect definida en MobileDefaultTemplates.ascx. No se puede modificar este archivo. Se puede crear una segunda RenderingTemplate también denominada Mobile_BLOG_HomePage_Redirect en un archivo .ascx personalizado, pero en ese caso se corre el riesgo de interrumpir otras soluciones personalizadas o de otro fabricante instaladas que pueden depender de la Mobile_BLOG_HomePage_Redirect existente.

    Primero se cargan las plantillas RenderingTemplate que vienen incluidas en SharePoint Foundation, por lo que la plantilla de representación estándar se sobrescribe cuando se carga una plantilla personalizada con el mismo nombre. Si dos o más plantillas personalizadas RenderingTemplate tienen el mismo nombre, el archivo cuyo nombre es alfabéticamente el último invalidará las demás plantillas. Si un archivo determinado tiene dos o más plantillas con el mismo nombre, no se carga ninguna de ellas.

    Nota

    Las definiciones de sitio MPS, CENTRALADMIN, TENANTADMIN y WIKI heredada no admiten el acceso desde dispositivos móviles.

    Nota

    El nombre de una definición de sitio se define mediante el atributo Name de un elemento Template en un archivo WebTemp.xml y el identificador de la definición de sitio se establece con el atributo ID del mismo elemento. Para obtener más información acerca de estos atributos, vea el tema sobre WebTemp.xml.

    Nota importanteImportante

    El elemento Configuration de la configuración de definición de sitio en el archivo Onet.xml de la definición de sitio debe tener un elemento WebFeatures que a su vez tenga el elemento de la característica de redirección de página principal: <Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" />.

    A continuación se muestra un ejemplo de una plantilla que redirige los dispositivos móviles que tienen acceso a sitios web en función de la definición de sitio STS a ContosoHomePage.aspx.

    <SharePoint:RenderingTemplate RunAt="Server"
       ID="Mobile_STS_HomePage_Redirect">
      <Template>
        <SPMobile:SPMobileHomePageRedirection RunAt="Server" 
          PageFileName="ContosoHomePage.aspx" />
      </Template>
    </SharePoint:RenderingTemplate>
    
  11. En el menú Generar, seleccione Implementar solución. Esta acción guarda automáticamente el archivo .ascx, implementa los dos archivos y recicla la aplicación web de modo que todos los archivos .ascx en dicha carpeta se vuelvan a cargar.

  12. Pruebe la nueva página principal mediante un dispositivo móvil o un emulador. Tenga en cuenta que la visualización de la página principal alternativa o la original dependerá exactamente de la dirección URL que use. Vea las secciones anteriores de este tema para obtener más información.

Vea también

Conceptos

Desarrollo de dispositivos móviles con SharePoint Foundation

Otros recursos

Procedimientos y tutoriales para el desarrollo de elementos móviles