Надстройки Office с манифестом унифицированного приложения для Microsoft 365
В этой статье представлен манифест унифицированного приложения для Microsoft 365. Предполагается, что вы знакомы с манифестом надстроек Office.
Совет
- Общие сведения о манифесте только надстройки см. в статье Надстройки Office с манифестом только надстройки.
- Если вы знакомы с манифестом только надстройки, вы можете проще понять унифицированный манифест в формате JSON, прочитав статью Сравнение манифеста только надстройки с унифицированным манифестом для Microsoft 365.
Корпорация Майкрософт вносит ряд улучшений в платформу разработчиков Microsoft 365. Эти улучшения повышают согласованность при разработке, развертывании, установке и администрировании всех типов расширений Microsoft 365, включая надстройки Office. Эти изменения совместимы с существующими надстройками.
Одним из важных улучшений является возможность создания единой единицы распространения для всех расширений Microsoft 365 с использованием одного формата манифеста и схемы.
Мы сделали важный первый шаг к достижению этих целей, позволяя создавать надстройки Outlook с унифицированным манифестом для Microsoft 365.
Примечание.
- В настоящее время унифицированный манифест поддерживает только надстройки Outlook и только в Office, связанных с подпиской Microsoft 365 и установленных в Windows, на мобильном устройстве или в Outlook в Интернете. Мы работаем над расширением поддержки Excel, PowerPoint и Word, а также Outlook на Mac и бессрочных версий Office.
- Для единого манифеста требуется Office версии 2304 (сборка 16320.00000) или более поздней.
Совет
Готовы приступить к работе с унифицированным манифестом? Начните с создания надстройки Outlook с унифицированным манифестом для Microsoft 365.
Ключевые свойства унифицированного манифеста
Справочная документация по версии манифеста единого приложения main приведена в справочнике по унифицированным манифестам. (Справочник по манифесту, который включает все последние предварительные версии функций, см. в разделе Общедоступная предварительная версия для разработчиков для унифицированного манифеста.) В этой статье мы кратко рассмотрим значение базовых свойств, когда приложение Teams является (или включает) надстройку Office. Далее следуют некоторые основные документы по свойству extensions и его потомкам. Полный пример манифеста для надстройки приведен в разделе Пример унифицированного манифеста.
Базовые свойства
Каждое из базовых свойств, перечисленных в следующей таблице, содержит более подробную документацию по схеме манифеста. Базовые свойства, не включенные в эту таблицу, не имеют значения для надстроек Office.
Свойство JSON | Назначение |
---|---|
"$schema" | Определяет схему манифеста. |
"manifestVersion" | Версия схемы манифеста. |
"id" | GUID приложения или надстройки Teams. |
"version" | Версия приложения или надстройки Teams. Формат должен содержать n.n.n n не более пяти цифр. |
"name" | Общедоступные короткие и длинные имена приложения или надстройки Teams. Короткое имя отображается в верхней части области задач надстройки. |
"description" | Общедоступные краткие и длинные описания приложения или надстройки Teams. |
"developer" | Сведения о разработчике приложения или надстройки Teams. |
"localizationInfo" | Настраивает языковой стандарт по умолчанию и другие поддерживаемые языковые стандарты. |
"validDomains" | См . раздел Указание безопасных доменов. |
"webApplicationInfo" | Определяет веб-приложение или надстройку Teams, известное в Azure Active Directory. |
"authorization" | Определяет все разрешения Microsoft Graph, необходимые надстройке. |
Свойство extensions
Мы прилагаем все усилия, чтобы заполнить справочную документацию по свойству extensions и его потомкам. В то же время ниже приведена базовая документация. Большинство , но не все свойства имеют эквивалентный элемент (или атрибут) в манифесте надстройки только для надстроек. В большинстве случаев описание и ограничения, применяемые к xml-элементу или атрибуту, также применяются к эквиваленту свойства JSON в унифицированном манифесте. Таблицы в разделе свойства "расширения" раздела Сравнение манифеста только надстройки с унифицированным манифестом для Microsoft 365 помогут определить XML-эквивалент свойства JSON.
Примечание.
Эта таблица содержит только некоторые репрезентативные свойства потомков "extensions". Это не исчерпывающий список всех дочерних свойств расширений. Полный список унифицированного манифеста см. в статье Унифицированный манифест для Microsoft 365. Справочник по манифесту, который включает все последние предварительные версии функций, см. в статье Общедоступная предварительная версия для разработчиков для унифицированного манифеста для Microsoft 365.
Свойство JSON | Назначение |
---|---|
"requirements.capabilities" | Определяет наборы требований , которые необходимо установить надстройке. |
"requirements.scopes" | Определяет приложения Office, в которых можно установить надстройку. Например, "почта" означает, что надстройку можно установить в Outlook. |
"ribbons" | Ленты, которые настраивает надстройка. |
"ribbons.contexts" | Указывает поверхности команд, которые настраивает надстройка. Например, "mailRead" или "mailCompose". |
"ribbons.fixedControls" (предварительная версия для разработчиков) | Настраивает и добавляет кнопку встроенной надстройки отчетов о спаме на ленту Outlook. |
"ribbons.spamPreProcessingDialog" (предварительная версия для разработчика) | Настраивает диалоговое окно предварительной обработки, отображаемое после того, как на ленте Outlook выбрана кнопка надстройки, сообщающей о нежелательной почте. |
"ribbons.tabs" | Настраивает пользовательские вкладки ленты. |
"альтернативные варианты" | Указывает обратную совместимость с эквивалентной надстройкой COM, XLL или обоими вариантами. Также указывает main значки, которые используются для представления надстройки в более ранних версиях Office. |
"runtimes" | Настраивает внедренные среды выполнения , которые использует надстройка, в том числе различные типы надстроек, которые имеют практически или не имеют пользовательского интерфейса, например пользовательские надстройки только для функций и команды функций. |
"autoRunEvents" | Настраивает обработчик для указанного события. |
Указание безопасных доменов
В файле манифеста есть массив validDomains, который используется для того, чтобы сообщить Office, к каким доменам следует разрешить переход вашей надстройке. Как отмечалось в разделе Указание доменов, которые нужно открыть в окне надстройки, при запуске в Office в Интернете область задач можно перейти по любому URL-адресу. Однако на классических платформах, если надстройка пытается перейти по URL-адресу в домене, отличном от домена, в котором размещена начальная страница, этот URL-адрес открывается в новом окне браузера за пределами области надстройки приложения Office.
Чтобы переопределить это поведение на настольных платформах, добавьте каждый домен, который нужно открыть в окне надстройки, в список доменов, указанных в массиве validDomains. URL-адреса в доменах из списка будут открываться в области задач как в классическом Office, так и в Office в Интернете. Если он пытается перейти по URL-адресу, который отсутствует в списке, в Office на рабочем столе этот URL-адрес открывается в новом окне браузера (за пределами области задач надстройки).
Пример унифицированного манифеста
Ниже приведен пример манифеста унифицированного приложения для надстройки. Он не содержит все возможные свойства манифеста.
{
"$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json",
"id": "00000000-0000-0000-0000-000000000000",
"version": "1.0.0",
"manifestVersion": "devPreview",
"name": {
"short": "Name of your app (<=30 chars)",
"full": "Full name of app, if longer than 30 characters (<=100 chars)"
},
"description": {
"short": "Short description of your app (<= 80 chars)",
"full": "Full description of your app (<= 4000 chars)"
},
"icons": {
"outline": "outline.png",
"color": "color.png"
},
"accentColor": "#230201",
"developer": {
"name": "Contoso",
"websiteUrl": "https://www.contoso.com",
"privacyUrl": "https://www.contoso.com/privacy",
"termsOfUseUrl": "https://www.contoso.com/servicesagreement"
},
"localizationInfo": {
"defaultLanguageTag": "en-us",
"additionalLanguages": [
{
"languageTag": "es-es",
"file": "es-es.json"
}
]
},
"webApplicationInfo": {
"id": "00000000-0000-0000-0000-000000000000",
"resource": "api://www.contoso.com/prodapp"
},
"authorization": {
"permissions": {
"resourceSpecific": [
{
"name": "Mailbox.ReadWrite.User",
"type": "Delegated"
}
]
}
},
"extensions": [
{
"requirements": {
"scopes": [ "mail" ],
"capabilities": [
{
"name": "Mailbox", "minVersion": "1.1"
}
]
},
"runtimes": [
{
"requirements": {
"capabilities": [
{
"name": "MailBox",
"minVersion": "1.10"
}
]
},
"id": "eventsRuntime",
"type": "general",
"code": {
"page": "https://contoso.com/events.html",
"script": "https://contoso.com/events.js"
},
"lifetime": "short",
"actions": [
{
"id": "onMessageSending",
"type": "executeFunction"
},
{
"id": "onNewMessageComposeCreated",
"type": "executeFunction"
}
]
},
{
"requirements": {
"capabilities": [
{
"name": "MailBox", "minVersion": "1.1"
}
]
},
"id": "commandsRuntime",
"type": "general",
"code": {
"page": "https://contoso.com/commands.html",
"script": "https://contoso.com/commands.js"
},
"lifetime": "short",
"actions": [
{
"id": "action1",
"type": "executeFunction"
},
{
"id": "action2",
"type": "executeFunction"
},
{
"id": "action3",
"type": "executeFunction"
}
]
}
],
"ribbons": [
{
"contexts": [
"mailCompose"
],
"tabs": [
{
"builtInTabId": "TabDefault",
"groups": [
{
"id": "dashboard",
"label": "Controls",
"controls": [
{
"id": "control1",
"type": "button",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
},
{
"id": "menu1",
"type": "menu",
"label": "My Menu",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "My Menu",
"description": "Menu with 2 actions"
},
"items": [
{
"id": "menuItem1",
"type": "menuItem",
"label": "Action 2",
"supertip": {
"title": "Action 2 Title",
"description": "Action 2 Description"
},
"actionId": "action2"
},
{
"id": "menuItem2",
"type": "menuItem",
"label": "Action 3",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 3 Title",
"description": "Action 3 Description"
},
"actionId": "action3"
}
]
}
]
}
],
}
]
},
{
"contexts": [ "mailRead" ],
"tabs": [
{
"builtInTabId": "TabDefault",
"groups": [
{
"id": "dashboard",
"label": "Controls",
"controls": [
{
"id": "control1",
"type": "button",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
}
]
}
],
"customMobileRibbonGroups" [
{
"id": "myMobileGroup",
"label": "Contoso Actions",
"controls": [
{
"id": "msgReadFunctionButton",
"type": "mobileButton",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
}
]
}
]
"customMobileRibbonGroups": [
{
"id": "mobileDashboard",
"label": "Controls",
"controls": [
{
"id": "control1",
"type": "mobileButton",
"label": "Action 1",
"icons": [
{
"size": 16,
"url": "test_16.png"
},
{
"size": 32,
"url": "test_32.png"
},
{
"size": 80,
"url": "test_80.png"
}
],
"supertip": {
"title": "Action 1 Title",
"description": "Action 1 Description"
},
"actionId": "action1"
}
]
}
]
}
]
}
],
"autoRunEvents": [
{
"requirements": {
"capabilities": [
{
"name": "MailBox", "minVersion": "1.10"
}
]
},
"events": [
{
"type": "newMessageComposeCreated",
"actionId": "onNewMessageComposeCreated"
},
{
"type": "messageSending",
"actionId": "onMessageSending",
"options": {
"sendMode": "promptUser"
}
}
]
}
],
"alternates": [
{
"requirements": {
"scopes": [ "mail" ]
},
"prefer": {
"comAddin": {
"progId": "ContosoExtension"
}
},
"hide": {
"storeOfficeAddin": {
"officeAddinId": "00000000-0000-0000-0000-000000000000",
"assetId": "WA000000000"
}
},
"alternateIcons": {
"icon": {
"size": 64,
"url": "https://contoso.com/assets/icon64x64.jpg"
},
"highResolutionIcon": {
"size": 64,
"url": "https://contoso.com/assets/icon128x128.jpg"
}
}
}
]
}
]
}
См. также
Office Add-ins