Указание требований к среде выполнения узла Microsoft 365 в манифесте приложения
Примечание.
Возможность указывать требования к среде выполнения узла Microsoft 365 в манифесте приложения (ранее называемом манифестом приложения Teams) доступна в общедоступной предварительной версии для разработчиков.
При обновлении личной вкладки или приложения расширения сообщений Microsoft Teams до использования манифеста приложения версии 1.13 или более поздней они по умолчанию доступны в других узлах приложений Microsoft 365. Однако если ваше приложение также включает возможности, которые еще не поддерживаются на определенных узлах, приложение может загружаться только частично, что приведет к незапланированному взаимодействию с пользователем.
Например, рассмотрим приложение, определенное со схемой манифеста приложения версии 1.17 и содержащее бота и вкладку конфигурации, представляющую параметры бота. Приложение будет загружаться в Outlook и приложении Microsoft 365 (Office), но отображается только вкладка конфигурации бота для пользователя без самого бота.
Чтобы обеспечить, чтобы высококачественные возможности приложений достигли целевой базы пользователей, укажите требования к среде выполнения приложения в манифесте приложения. Это позволяет настроить его поведение на применимых узлах Microsoft 365 или опустить его в контекстах, которые вы не готовы поддерживать.
Указание требований к среде выполнения приложения полезно в таких сценариях, как:
Односторонние зависимости. Если единственной целью одной возможности приложения является поддержка другой возможности в приложении, вы можете убедиться, что она отображается только при загрузке основного приложения. Например, если ваше приложение включает в себя расширение для вкладок и сообщений, а вкладка функционирует как страница параметров для пользователей для настройки функциональных возможностей расширения сообщений, можно указать, что вкладка "Параметры" не загружается на узлах, которые не поддерживают расширение сообщений.
Взаимные зависимости: Если приложение имеет определенные возможности приложения, которые необходимо загрузить вместе для правильной работы, вы можете убедиться, что приложение доступно только на узлах Microsoft 365, поддерживающих все возможности. Например, если возможности tab, бота и расширения сообщений работают вместе для поддержки основного пользовательского сценария в приложении, можно указать, что эти возможности всегда загружаются вместе или вообще не загружаются.
Требования к возможностям: Если ваше приложение имеет возможности с требованиями среды выполнения, которые не поддерживаются на определенных узлах Microsoft 365, вы можете убедиться, что эти возможности будут полностью опущены (а не загружены, но не функциональны) в интерфейсе приложения, работающего на этих узлах. Например, если приложение содержит представление панели мониторинга на основе вкладок с элементами, каждый из которых может быть открыт в виде диалога, и каждое диалоговое окно содержит сведения, которые затем отправляются боту, можно указать, что диалоги на основе бота являются основными возможностями, необходимыми для загрузки приложения в заданном узле.
Поддержка узла Microsoft 365
Следующие ведущие приложения Microsoft 365 поддерживают возможность указания требований к среде выполнения в манифесте приложения:
Ведущее приложение Microsoft 365 | Web | Версия для настольного компьютера | Мобильная версия |
---|---|---|---|
Teams | ✔️ | ✔️ | ✔️ |
Outlook | ✔️ | ✔️ (Только новый Outlook) | ✔️ |
Microsoft 365 (Office) | |||
Microsoft 365 Copilot |
Указание связей между возможностями приложения (elementRelationshipSet
)
Вы можете указать связи между отдельными возможностями приложения, включив elementRelationshipSet
в манифест приложения. Этот объект используется для указания односторонних зависимостей и взаимных зависимостей между возможностями приложения.
Следующие возможности манифеста приложения можно указать как имеющие односторонние или взаимные зависимости:
- Вкладки: личные (
staticTabs
) и настраиваемые (configurableTabs
) - Расширения сообщений (
composeExtensions
), включая отдельные команды - Боты (
bots
)
Каждая возможность приложения определяется новым свойством , id
которое сопоставляется botId
с для ботов, entityId
статических вкладок, а id
также для настраиваемых вкладок и расширений сообщений. Teams и другие узлы Microsoft 365 поддерживают приложения, содержащие одну настраиваемую вкладку, одно расширение для сообщений или и то, и другое. Свойство id
в будущем проверяет приложение, если поддержка узла расширяется для размещения нескольких экземпляров этих возможностей.
Важно!
Убедитесь, что создаваемые связи соответствуют следующим правилам проверки:
- Элементы, указанные в разделе
elementRelationshipSet
, должны иметь определения в манифесте приложения. Например, объектelement
илиcommandId
, указанный вdependsOn
разделе объекта, не имеющий соответствующегоoneWayDependencies
определения в манифесте приложения (с соответствующим значениемid
), приводит к ошибке проверки манифеста. Свойствоid
должно быть указано вconfigurableTab
или дляcomposeExtension
распознавания вelementRelationshipSet
. - Заданный набор возможностей можно сгруппировать только по
mutualDependency
oneWayDependency
или , но не по обоим. Например, указание как односторонной зависимости (A зависит от B), так и взаимной зависимости (A и B зависят друг от друга) приводит к ошибке проверки манифеста, так как связь A зависит от B представлена дважды. - Циклические односторонние зависимости не допускаются. Например, при указании отношения A зависит от связи B , а для B — отношения A , возникает ошибка проверки манифеста.
Односторонние зависимости
Используйте массив для oneWayDependencies
описания случаев, когда один компонент приложения зависит от другого компонента. Для каждого объекта в массиве укажите зависимый компонент (element
) и компонент, от которых он зависит (dependsOn
). Можно также указать отдельные команды, которым требуется поддержка определенных возможностей приложения. Если эти возможности не поддерживаются в узле среды выполнения, они не предоставляются пользователю (хотя все остальные команды выполняются).
В следующем фрагменте КОДА JSON показаны конкретные команды расширения сообщений, которые имеют односторонняя зависимость от бота:
"elementRelationshipSet": {
"oneWayDependencies" : [
{
"element" : {
"name" : "composeExtensions",
"id" : "composeExtension-id",
"commandIds": ["exampleCmd1", "exampleCmd2"]
},
"dependsOn" : [
{"name" : "bots", "id" : "bot-id"}
]
}
]
}
Взаимные зависимости
Используйте массив для mutualDependencies
группировки возможностей приложений, которые должны загружаться вместе для поддержки их предполагаемой функции. Каждый объект в массиве представляет набор взаимозависимых возможностей приложения. В следующем фрагменте JSON показаны бот, статическая вкладка, расширение сообщений и настраиваемая вкладка, которые взаимно зависят друг от друга:
"elementRelationshipSet": {
"mutualDependencies" : [
[
{"name" : "bots", "id" : "bot-id"},
{"name" : "staticTabs", "id" : "staticTab-id"},
{"name" : "composeExtensions", "id" : "composeExtension-id"},
{"name" : "configurableTabs", "id": "configurableTab-id"}
]
]
},
Указание требований среды выполнения для конкретных возможностей приложения (requirementSet
)
В определениях возможностей отдельных приложений можно указать определенные требования к среде выполнения TeamsJS с помощью requirementSet
. Это гарантирует, что возможность приложения загружается только на узлах Microsoft 365 с поддержкой критически важных возможностей TeamsJS.
Следующие возможности TeamsJS можно указать в качестве требований среды выполнения для staticTabs
, composeExtensions
и bots
:
- Диалоговые окна на основе HTML (
dialog.url
) - Диалоговые окна на основе HTML для Bot Framework (
dialog.url.bot
) - Диалоговые окна адаптивных карточек (
dialog.adaptiveCard
) - Диалоговые окна адаптивных карточек для Bot Framework (
dialog.adaptiveCard.bot
)
В следующем фрагменте JSON показана статическая вкладка, для которой требуется, чтобы ее узел поддерживал диалоговые окна HTML (называемые модулями задач в TeamsJS версии 1.x), вызываемые из вкладок и ботов:
"staticTabs": [
{
"entityId": "idForPage",
"name": "Display name of tab",
"contentUrl": "https://contoso.com/content?host=msteams",
"contentBotId": "Specifies to the app that tab is an Adaptive Card Tab. You can either provide the contentBotId or contentUrl.",
"websiteUrl": "https://contoso.com/content",
"scopes": [
"personal"
],
"requirementSet": {
"hostMustSupportFunctionalities": [
{"name": "dialogUrl"},
{"name": "dialogUrlBot"}
]
}
}
],
Примеры кода
Название примера | Описание | JavaScript |
---|---|---|
Целевые требования: односторонняя зависимость | Пример приложения, демонстрирующий указание односторонних связей зависимостей между возможностями приложения. | Просмотр |
Целевые требования: взаимная зависимость | Пример приложения, демонстрирующий, как указать взаимные отношения зависимостей между возможностями приложения. | Просмотр |
См. также
Platform Docs