Основные файлы, управляющие работой плагина:
- файл
manifest.xmlв корневом каталоге проекта определяет настройки и возможности надстройки; - файл
taskpane.htmlсодержит разметку HTML для области задач; - файл
taskpane.cssсодержит код CSS, который применяется к содержимому области задач; - файл
taskpane.jsсодержит код API JavaScript для Office, который управляет взаимодействием между областью задач и клиентским приложением Office.
Основной файл манифеста (по умолчанию manifest.xml) состоит из записей в файле формата XML. Его основные параметры приведены ниже.
Основные параметры файла манифеста
Параметры файла manifest.xml, которые задают основные сведения о плагине:
- Элемент ProviderName может содержать название вашей компании или название плагина.
<ProviderName>VK Teams</ProviderName>
- Элемент Description содержит краткое текстовое описание плагина.
<Description DefaultValue="Эта надстройка позволяет создавать конференции VK Teams и управлять их настройками"/>
- Элемент DefaultLocale устанавливает язык по умолчанию, используемый плагином.
<DefaultLocale>ru-RU</DefaultLocale>
- Элементы, приведенные ниже, задают иконки соответствующих размеров (логотипы) приложения в выбранной области их отображения.
<IconUrl DefaultValue="https://url-adress.ru/assets/icon-64.png"/>
<HighResolutionIconUrl DefaultValue="https://url-adress.ru/assets/icon-128.png"/>
Технические параметры манифеста и область отображения
Один из важнейших параметров в блоке <FormSettings> — параметр <SourceLocation>. Он задает URL-адрес файла taskpane.html, содержащий разметку HTML для выбранной области отображения.
Пример использования:
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://url-adress.ru/taskpane.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
В блоке <Resources> задаются дополнительные параметры функциональности, вложенные файлы, управляющие функциональностью плагина, описаны ресурсы, такие как иконки, кнопки и подписи к кнопкам, используемым в плагине.
Пример использования:
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://url-adress.ru/assets/icon-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://url-adress.ru/assets/icon-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://url-adress.ru/assets/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://url-adress.ru/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="https://url-adress.ru/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="VK Teams Add-in"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="VK Teams"/>
<bt:String id="ActionButton.Label" DefaultValue="Создать конференцию"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Создать конференцию."/>
<bt:String id="ActionButton.Tooltip" DefaultValue="Создать конференцию"/>
</bt:LongStrings>
</Resources>
Дополнительные параметры и функции
Дополнительные параметры и функции могут быть организованы и заданы различными способами, однако общие пожелания по стилю разработки определены в разделе выше.
Параметр <ExtensionPoint> определяет тип элемента, который задает параметры расположения кнопки-иконки, запускающей плагин на выполнение. Его основные параметры для Outlook:
MessageReadCommandSurface. Помещает кнопки на панель команд для чтения почты. В классической версии Outlook эта панель отображается на ленте.
MessageComposeCommandSurface. Добавляет кнопки на ленту для надстроек, использующих форму создания сообщения.
AppointmentOrganizerCommandSurface. Добавляет кнопки на ленту для формы, предназначенной для организатора конференции. Актуально для текущего веб-плагина.
AppointmentAttendeeCommandSurface. Добавляет кнопки на ленту для формы, предназначенной для участника конференции.
Module (может использоваться только в форм-факторе настрольных устройств). Добавляет кнопки на ленту для расширения модуля.
MobileMessageReadCommandSurface. Помещает кнопки на панель команд для чтения почты в форм-факторе мобильного устройства.
MobileOnlineMeetingCommandSurface. Помещает соответствующий режим переключателя в области команд для встречи в форм-факторе мобильного устройства. Организатор может создать конференцию по сети, а участник может впоследствии присоединиться к конференции по сети.
MobileLogEventAppointmentAttendee. Помещает кнопку действия журнала в область команд для встречи в форм-факторе мобильного устройства. Участники встреч, у которых установлена надстройка, могут сохранять заметки о встрече во внешнем приложении одним кликом. Эта точка расширения поддерживает функциональные возможности для команд области задач и функций. Дополнительные сведения об этом сценарии на сайте производителя
LaunchEvent. Позволяет надстройке активироваться на основе поддерживаемых событий в форм-факторах настольных и мобильных устройств. Дополнительные сведения об активации на основе событий и полный список поддерживаемых событий на сайте производителя
Events (LaunchEvent). Позволяет надстройке активироваться на основе поддерживаемых событий в форм-факторах настольных и мобильных устройств. Дополнительные сведения об активации на основе событий и полный список поддерживаемых событий сайте производителя
DetectedEntity. Добавляет активацию контекстной надстройки для указанного типа сущности. Дополнительные сведения об использовании этой точки расширения на сайте произвиодителя
ReportPhishingCommandSurface (предварительная версия). Активирует надстройку, сообщающую о спаме на ленте Outlook, и предотвращает ее появление в конце ленты или в меню переполнения.
Подробное описание параметров
Подробное описание параметров доступно на сайте производителя: Точки расширения для Outlook (Extension point)
Пример файла manifest.xml
<OfficeApp xsi:type="MailApp">
<Id>7fa0c9ac-fa88-4a1c-b380-a42691743447</Id>
<Version>1.0.0.0</Version>
<ProviderName>VK Teams</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="VK Teams"/>
<Description DefaultValue="Эта надстройка позволяет создавать конференции VK Teams и управлять их настройками"/>
<IconUrl DefaultValue="https://url-adress.ru/assets/icon-64.png"/>
<HighResolutionIconUrl DefaultValue="https://url-adress.ru/assets/icon-128.png"/>
<Hosts>
<Host Name="Mailbox"/>
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1"/>
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://url-adress.ru/taskpane.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read"/></Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url"/>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup2">
<Label resid="GroupLabel"/>
<Control xsi:type="Button" id="msgReadOpenPaneButton2">
<Label resid="TaskpaneButton.Label"/>
<Supertip>
<Title resid="TaskpaneButton.Label"/>
<Description resid="TaskpaneButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://url-adress.ru/assets/icon-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://url-adress.ru/assets/icon-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://url-adress.ru/assets/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://url-adress.ru/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="https://url-adress.ru/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="VK Teams Add-in"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="VK Teams"/>
<bt:String id="ActionButton.Label" DefaultValue="Создать конференцию"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Создать конференцию"/>
<bt:String id="ActionButton.Tooltip" DefaultValue="Создать конференцию"/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
