Практическое руководство. Настройка домашней страницы для мобильных устройств с помощью перенаправления
Дата последнего изменения: 2 февраля 2011 г.
Применимо к: SharePoint Foundation 2010
Как описано в разделе Перенаправление на домашнюю страницу, у Microsoft SharePoint Foundation есть вторая система перенаправления только для домашних страниц. В этом разделе описывается, как можно изменить эту систему, чтобы пользователи мобильных устройств могли видеть альтернативную домашнюю страницу для определенных типов сайтов.
Примечание |
---|
Перенаправление на домашнюю страницу вызывается только в том случае, если пользователь мобильного устройства получает доступ к домашней странице веб-сайта с помощью одного из следующих методов.
Перенаправление может вызываться из браузера с помощью /m/ или за счет добавления ?Mobile=1 после default.aspx в URL-адресе. Метод, описанный в этом разделе, не влияет на пользователей мобильных устройств, которые для посещения домашней страницы используют только URL-адрес веб-сайта (http://MyServer/MyWebSite/) или страницу, отличную от default.aspx (http://MyServer/MyWebSite/HomePage.aspx). |
При перенаправлении на домашнюю страницу используется двухуровневый механизм перенаправления. Мобильные устройства изначально перенаправляются на страницу default.aspx для мобильных устройств, расположенную в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE. Затем страница default.aspx перенаправляет пользователя на фактическую домашнюю страницу в соответствии с текущим типом определения сайта, используя следующую последовательность действий.
В default.aspx содержится единственный элемент управления, сообщающий среде выполнения, что необходимо использовать класс RenderingTemplate с именем MobileHomePageRedirect.
Среда выполнения ищет в памяти все элементы управления визуализацией, загруженные из ASCX-файлов в папку %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES, с именем RenderingTemplate и находит один из них (загруженный из файла MobileDefaultTemplates.ascx).
Свойство Template элемента управления MobileHomePageRedirect указывает среде выполнения на объект класса SPMobileWebUrlRedirect.
Объект SPMobileWebUrlRedirect строит имя другого RenderingTemplate с помощью шаблона Mobile_SiteTypeID_HomePage_Redirect, где SiteTypeID — имя определения сайта, входящего в состав SharePoint Foundation, например STS, SGS или BLOG, или идентификатор определения настраиваемого сайта, например 10001. (Дополнительные сведения см. в разделе справки о классе SPMobileWebUrlRedirect.)
Для поиска второго RenderingTemplate среда выполнения просматривает все шаблоны визуализации, загруженные из ASCX-файлов в папку %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\CONTROLTEMPLATES.
Если SiteTypeID имеет значение BLOG, то среда выполнения обнаружит RenderingTemplateMobile_BLOG_HomePage_Redirect в файле MobileDefaultTemplates.ascx. Последнее свойство Template элемента управления указывает среде выполнения на объект класса SPMobileHomePageRedirection, свойство PageFileName которого задает в качестве домашней страницу bloghome.aspx.
Если значение SiteTypeID отлично от BLOG и настраиваемые ASCX-файлы не были созданы, то среда выполнения использует RenderingTemplateMobile_Default_HomePage_Redirect в файле MobileDefaultTemplates.ascx. Последнее свойство Template элемента управления указывает среде выполнения на объект класса SPMobileHomePageRedirection, свойство PageFileName которого задает в качестве домашней страницу mblwp.aspx.
Можно создать настраиваемый элемент управления, который будет перенаправлять пользователей на другую домашнюю страницу для мобильных устройств.
Процедуры
Замена домашней страницы для мобильных устройств путем перенаправления
В Microsoft Visual Studio создайте Пустой проект SharePoint. Выберите фермы, а не для песочницы.
Добавьте сопоставленную папку SharePoint в папку TEMPLATE\LAYOUTS\MOBILE.
Щелкните правой кнопкой мыши новую папку и добавьте обычный текстовый файл, который будет новой домашней страницей, а затем выберите имя с расширением ASPX; например, ContosoHomePage.aspx. Visual Studio автоматически добавляет файл в манифест решения SharePoint и задает параметры для его развертывания в папке %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE.
Совет Не добавляйте элемент страница приложения SharePoint в проект. Visual Studio включает с такими элементами некоторые дополнительные папки и файлы развертывания (и содержимое файла по умолчанию), которые не подходят для страницы для мобильных устройств.
Скопируйте содержимое существующей страницы из папки %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\MOBILE, например mblwiki.aspx, mblwp.aspx, mblwpdetail.aspx или bloghome.aspx, в пользовательский файл.
Измените содержимое файла, как необходимо. (Для быстрой проверки скопируйте содержимое файла mblwiki.aspx и поменяйте параметры цвета переднего плана и фонового цвета местами в заголовке, чтобы заголовок страницы стал темным сине-серым на белом фоне вместо стандартного белого на темном сине-сером фоне.)
Добавьте сопоставленную папку SharePoint в папку TEMPLATE\ControlTemplates.
Щелкните правой кнопкой мыши новую папку и добавьте пользовательский элемент управления в папку. Присвойте 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. Шаблоны отображения для мобильных устройств, находящиеся во вложенных папках, не загружаются.
Удалите файлы .ascx.cs и .ascx.designer.cs (либо .ascx.vb и .ascx.designer.vb). Эти файлы для данного проекта не требуются.
Замените весь раздел директив в 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" %>
Добавьте шаблон визуализации в ASCX-файл и задайте для него идентификатор в следующем формате: Mobile_SiteTypeID_HomePage_Redirect.
SiteTypeID может иметь следующие значения.
Имя определения сайта группы: "STS"
Имя определения сайта рабочей группы: "SGS"
Номер идентификатора (не имя) создаваемого определения настраиваемого сайта.
Шаблон RenderingTemplateMobile_BLOG_HomePage_Redirect уже определен в файле MobileDefaultTemplates.ascx. Этот файл изменять нельзя. Можно создать второй шаблон RenderingTemplate с таким же именем Mobile_BLOG_HomePage_Redirect в настраиваемом ASCX-файле, но это может привести к повреждению других установленных пользовательских решений или решений сторонних производителей, которые, возможно, зависят от существующего Mobile_BLOG_HomePage_Redirect.
Шаблоны RenderingTemplate, поставляемые вместе с SharePoint Foundation, загружаются первыми, поэтому стандартный шаблон визуализации переопределяется при загрузке настраиваемого шаблона с тем же именем. Если как минимум два настраиваемых шаблона RenderingTemplate имеют одинаковые имена, шаблон с последним по алфавиту именем файла переопределяет другие. Если конкретный файл имеет несколько шаблонов с одинаковыми именами, ни один из них не загружается.
Примечание MPS, CENTRALADMIN, TENANTADMIN и устаревшие определения сайта WIKI не поддерживают доступ с мобильных устройств.
Примечание Имя определения сайта определяется атрибутом Name элемента Template в файле WebTemp.xml, а идентификатор определения сайта задается атрибутом ID того же элемента. Дополнительные сведения об этих атрибутах см. в статье WebTemp.xml.
Важно! Элемент Configurationконфигурации определения сайта в файле Onet.xml определения сайта должен содержать элемент WebFeatures, а в этом элементе должен содержаться элемент компонента перенаправления на домашнюю страницу: <Feature ID="F41CC668-37E5-4743-B4A8-74D1DB3FD8A4" />.
Далее показан пример шаблона, который перенаправляет мобильные устройства, обращающиеся к веб-сайтам на основе определения сайта STS, на страницу ContosoHomePage.aspx.
<SharePoint:RenderingTemplate RunAt="Server" ID="Mobile_STS_HomePage_Redirect"> <Template> <SPMobile:SPMobileHomePageRedirection RunAt="Server" PageFileName="ContosoHomePage.aspx" /> </Template> </SharePoint:RenderingTemplate>
В меню Построение выберите команду Развернуть решение. При этом ASCX-файл будет автоматически сохранен, два файла будут развернуты, а веб-приложение — перезапущено, в результате чего все ASCX-файлы в этой папке будут перезагружены.
Проверьте новую домашнюю страницу с помощью мобильного устройства или эмулятора. Обратите внимание, что отображение альтернативной или исходной домашней страницы зависит от используемого URL-адреса. Дополнительные сведения см. выше в этом разделе.
См. также
Концепции
Разработка для мобильных устройств с помощью SharePoint Foundation