Поделиться через


Развертывание расширений SharePoint Framework на уровне клиента

Развертывание расширений SharePoint Framework (SPFx) на уровне клиента поддерживается для настройщиков приложений и для наборов команд представления списка. Оно позволяет менеджерам каталогов приложений клиента легко управлять активацией расширений по умолчанию или на основе шаблонов веб-страниц либо списков, используемых на сайтах.

Примечание.

Расширения SharePoint Framework поддерживаются в современном интерфейсе независимо от шаблона, использовавшегося при создании сайта с контентом.

Когда разработчики создают новое расширение SharePoint Framework, используя стандартные пакеты Yeoman для SharePoint Framework, в пакет решения включается автоматизация для активации расширения для всего клиента.

Предупреждение

Начиная с SharePoint Framework версии 1.6 в решении SharePoint будут автоматически создаваться примеры файлов, чтобы активировать расширение для всего клиента, если вы выбрали развертывание на уровне клиента.

Чтобы иметь возможность автоматически активировать расширения для всего клиента, для решений SharePoint Framework необходимо настроить развертывание на уровне клиента для решений SharePoint Framework. Это означает, что для атрибута skipFeatureDeployment в файле package-solution.json необходимо установить значение true.

Управление развертыванием на уровне клиента из семейства веб-сайтов каталога приложений

Семейство веб-сайтов каталога приложений используется для развертывания надстроек SharePoint и компонентов SharePoint Framework в клиенте. Это семейство веб-сайтов создается администратором клиента и используется для выбора настроек, доступных конечным пользователям в семействах веб-сайтов контента.

Семейство веб-сайтов каталога приложений содержит список Tenant Wide Extensions, который можно использовать для управления активациями расширений SharePoint Framework в клиенте. Доступ к этому списку можно получить со страницы контента сайта каталога приложений.

Определенные расширения SharePoint Framework можно активировать на уровне клиента, добавив записи в список Tenant Wide Extension. Каждая запись может относиться к определенному веб-шаблону или типу списка, в зависимости от функциональных требований.

Эти конфигурации списков разрешаются во время доступа пользователей к страницам в семействах веб-сайтов контента. Это означает, что изменения, примененные к этому списку, доступны как для существующих, так и для новых сайтов в клиенте.

Решения SharePoint Framework могут содержать автоматизацию, которая автоматически добавит запись в список Tenant Wide Extension при добавлении решения.

Важно!

Активация функции может занять до 20 минут после добавления первой записи в список Tenant Wide Extensions в определенном клиенте.

Описание списка развертывания на уровне клиента

Чтобы для идентификатора компонента можно было добавить запись, он должен существовать в клиенте.

Column Тип Описание
Заголовок Строка Название записи. Может быть описательной записью для регистрации.
Component Id Guid Идентификатор манифеста компонента. Должен быть в формате GUID, а компонент должен существовать в каталоге приложения.
Component Properties Строка Дополнительные свойства компонента.
Web Template Строка Может использоваться для определения веб-шаблона для расширения. См. возможные значения в таблице ниже.
List template int Тип списка в виде числа. См. возможные значения в таблице ниже.
Location Строка Расположение записи. Для настройщиков заполнителей и наборов команд для просмотра списка поддерживаются разные расположения.
Sequence int Последовательность записи при отрисовке.
Host Properties Строка Дополнительная настройка параметров на стороне сервера, таких как предварительно заданная высота заполнителей.
Отключено Логическое Состояние записи (включена или отключена).

Для столбца Web Template технически поддерживается любое определение веб-шаблона. В следующей таблице определены наиболее часто используемые шаблоны.

Шаблон Идентификатор веб-шаблона
Связанный с группой сайт GROUP#0
Информационный сайт SITEPAGEPUBLISHING#0
Современный сайт группы без группы STS#3
Классический сайт группы STS#0
Классический сайт публикации BLANKINTERNET#0

Для столбца List Template технически поддерживается любой идентификатор списка, но только подмножество классических типов списков поддерживает современный интерфейс.

Список Идентификатор списка
Настраиваемый список 100
Библиотека документов 101

Поддерживаются следующие значения расположения. Учитывайте тип компонента.

Value Тип компонента Описание
ClientSideExtension.ApplicationCustomizer Настройщик заполнителей Обязательно для настройщика заполнителей.
ClientSideExtension.ListViewCommandSet.ContextMenu Набор команд ListView Отображение кнопок для просмотра списка в контекстном меню для элементов списка.
ClientSideExtension.ListViewCommandSet.CommandBar Набор команд ListView Отображение кнопок для просмотра списка в панели команд списка.
ClientSideExtension.ListViewCommandSet Набор команд ListView Отображение кнопок для просмотра списка как в контекстном меню, так и на панели команд.

Примечание.

Формально этот список определяет динамические записи, которые будут автоматически добавляться в коллекцию Web или List UserCustomAction при отрисовке страницы сайта. Информация о списке кэшируется, и его содержимое выводится во время отрисовки страницы.

Автоматизация развертывания на уровне клиента из пакета решений

Генератор SharePoint Framework добавляет файл ./sharepoint/assets/ClientSideInstance.xml в новые решения, если в качестве типа начального компонента выбрано расширение.

Проект клиентского решения SharePoint

Файл ClientSideInstance.xml учитывается при активации решения в каталоге приложений, если для атрибута skipFeatureDeployment установлено значение true в файле package-solution.json.

Этот файл по умолчанию содержит следующую структуру. Элемент ClientSideComponentInstance дает указание SharePoint автоматически добавлять запись в список Tenant Wide Deployment при добавлении пакета решения в каталог приложений.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ClientSideComponentInstance
      Title="MyAppCust"
      Location="ClientSideExtension.ApplicationCustomizer"
      ComponentId="917a86f2-15c1-403e-bbe1-59c6bd50d1e1"
      Properties="{&quot;testMessage&quot;:&quot;Test message&quot;}">
  </ClientSideComponentInstance>
</Elements>

Если вы выбрали SharePoint Online (последняя версия) в качестве целевой среды, выбранной при создании решения SharePoint Framework, ClientSideInstance.xmlфайл также будет указан в файле package-solution.json, чтобы он был включен в файл *.sppkg при упаковке решения.

Важно!

Если выбрать другую целевую среду при добавлении файла ClientSideInstance.xml в проект, он не будет включен в файл package-solution.json. Хотя решение SharePoint Server 2019 (включающее SharePoint Framework версии 1.4, детали см. в разделе Поддерживаемые возможности) поддерживает развертывание на уровне клиента, оно не поддерживает развертывание для всего клиента (добавлено в SharePoint Framework версии 1.6, детали см. разделе Развертывание расширений во всем клиенте).

Если этот файл указан в файле package-solution.json, при отправке созданного файла *.sppkg в каталог приложений клиента SharePoint Server 2019 возникнет исключение.

Примечание.

Если вы не хотите, чтобы этот файл присутствовал в файле *.sppkg , его можно легко удалить из процесса упаковки, обновив файл package-solution.json .

Элемент ClientSideComponentInstance поддерживает следующие атрибуты.

Атрибут Обязательный Описание
Title Да Название записи. Может быть описательной записью для регистрации.
Location Да Запись о расположении для регистрации расширения
ComponentId Да Идентификатор манифеста компонента
Properties Да Необязательные свойства компонента. Обратите внимание, что это обязательный атрибут на уровне xml, который может быть пустой строкой, если свойства не нужны. Значение также необходимо правильно закодировать, чтобы значения свойств можно было предоставить в формате xml.
ListTemplateId Нет Необязательный идентификатор типа шаблона списка, для которого необходимо активировать расширение
WebTemplateId Нет Необязательный идентификатор веб-шаблона для определения типа сайта, для которого необходимо активировать расширение
Sequence Нет Необязательный порядок активации расширений. Используется, если несколько расширений активируются в одной области.
HostProperties Нет Необязательная настройка на стороне сервера, например определение предварительно заданной высоты заполнителей.

Ниже показано, как можно использовать необязательные значения в процессе регистрации.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ClientSideComponentInstance
      Title="MyAppCust"
      Location="ClientSideExtension.ApplicationCustomizer"
      ComponentId="917a86f2-15c1-403e-bbe1-59c6bd50d1e1"
      Properties="{&quot;testMessage&quot;:&quot;Test message&quot;}"
      ListTemplateId="100"
      WebTemplateId="GROUP#0"
      Sequence="10"
      HostProperties="{&quot;preAllocatedApplicationCustomizerTopHeight&quot;:&quot;50&quot;,&quot;preAllocatedApplicationCustomizerBottomHeight&quot;:&quot;50&quot;}">
  </ClientSideComponentInstance>
</Elements>

Когда администратор добавляет решение с ClientSideInstance.xml файлом в каталог приложений, показано конкретное предупреждающее сообщение, чтобы убедиться, что наличие автоматической конфигурации известно.

Предоставление доверия пакету SharePoint Framework, разворачиваемому в каталоге приложений клиента

После развертывания решения администратор может изменить параметры развертывания в списке Tenant Wide Extension.