Я разрабатываю надстройку для Outlook, которая содержит настраиваемую вкладку, несколько групп и несколько кнопок.
В качестве проверки работоспособности я создал манифест, который предоставит мне настраиваемую вкладку, одну группу иодну кнопку, см. пример кода ниже (отредактирован из-за проблем с безопасностью / конфиденциальностью):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OfficeApp
xsi:type="MailApp"
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0">
<Id>3146b891-b800-431c-8fd3-feceea31a889</Id>
<Version>1.2</Version>
<ProviderName>redacted</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="redacted mikeeTest Add-In"/>
<Description DefaultValue="Various features from mikee directly in your Outlook or OWA."/>
<IconUrl DefaultValue="redacted"/>
<HighResolutionIconUrl DefaultValue="redacted"/>
<SupportUrl DefaultValue="redacted" />
<AppDomains>
<!-- redacted -->
</AppDomains>
<Hosts>
<Host Name="Mailbox"/>
</Hosts>
<Requirements>
<Sets>
<Set Name="MailBox" MinVersion="1.4"/>
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="redacted"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteMailbox</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="funcFile"/>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<CustomTab id="TabTest">
<Group id="mikeeTestGroup">
<Label resid="mikeeTestGroupLabel"/>
<Control xsi:type="Menu" id="mikeeTestMenu">
<Label resid="mikeeTestMenuLabel" />
<Supertip>
<Title resid="mikeeTestMenuTitle" />
<Description resid="mikeeTestMenuLabelDesc" />
</Supertip>
<Icon>
<bt:Image size="16" resid="mikeeTestMenuIcon-16" />
<bt:Image size="32" resid="mikeeTestMenuIcon-32" />
<bt:Image size="80" resid="mikeeTestMenuIcon-80" />
</Icon>
<Items>
<Item id="delBlock">
<Label resid="delBlockButtonLabel" />
<Supertip>
<Title resid="delBlockButtonTitle" />
<Description resid="delBlockButtonLabelDesc" />
</Supertip>
<Icon>
<bt:Image size="16" resid="delBlockIcon-16" />
<bt:Image size="32" resid="delBlockIcon-32" />
<bt:Image size="80" resid="delBlockIcon-80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>deleteAndBlockSender</FunctionName>
</Action>
</Item>
<Item id="mvToInbox">
<Label resid="mvToInboxButtonLabel" />
<Supertip>
<Title resid="mvToInboxButtonTitle" />
<Description resid="mvToInboxButtonLabelDesc" />
</Supertip>
<Icon>
<bt:Image size="16" resid="mvToInboxIcon-16" />
<bt:Image size="32" resid="mvToInboxIcon-32" />
<bt:Image size="80" resid="mvToInboxIcon-80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>moveToInbox</FunctionName>
</Action>
</Item>
<Item id="mvToLowPriority">
<Label resid="mvToLowPriorityButtonLabel" />
<Supertip>
<Title resid="mvToLowPriorityButtonTitle" />
<Description resid="mvToLowPriorityButtonLabelDesc" />
</Supertip>
<Icon>
<bt:Image size="16" resid="mvToLowPriorityIcon-16" />
<bt:Image size="32" resid="mvToLowPriorityIcon-32" />
<bt:Image size="80" resid="mvToLowPriorityIcon-80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>moveToLowPriority</FunctionName>
</Action>
</Item>
<Item id="markAsSuspicious">
<Label resid="markAsSuspiciousButtonLabel" />
<Supertip>
<Title resid="markAsSuspiciousButtonTitle" />
<Description resid="markAsSuspiciousButtonLabelDesc" />
</Supertip>
<Icon>
<bt:Image size="16" resid="markAsSuspiciousIcon-16" />
<bt:Image size="32" resid="markAsSuspiciousIcon-32" />
<bt:Image size="80" resid="markAsSuspiciousIcon-80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>markAsSuspicious</FunctionName>
</Action>
</Item>
</Items>
</Control>
</Group>
<Label resid="onePluginTabLabel"/>
</CustomTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="mikeeTestMenuIcon-16" DefaultValue="redacted"/>
<bt:Image id="mikeeTestMenuIcon-32" DefaultValue="redacted"/>
<bt:Image id="mikeeTestMenuIcon-80" DefaultValue="redacted"/>
<bt:Image id="delBlockIcon-16" DefaultValue="redacted"/>
<bt:Image id="delBlockIcon-32" DefaultValue="redacted"/>
<bt:Image id="delBlockIcon-80" DefaultValue="redacted"/>
<bt:Image id="mvToInboxIcon-16" DefaultValue="redacted"/>
<bt:Image id="mvToInboxIcon-32" DefaultValue="redacted"/>
<bt:Image id="mvToInboxIcon-80" DefaultValue="redacted"/>
<bt:Image id="mvToLowPriorityIcon-16" DefaultValue="redacted"/>
<bt:Image id="mvToLowPriorityIcon-32" DefaultValue="redacted"/>
<bt:Image id="mvToLowPriorityIcon-80" DefaultValue="redacted"/>
<bt:Image id="markAsSuspiciousIcon-16" DefaultValue="redacted"/>
<bt:Image id="markAsSuspiciousIcon-32" DefaultValue="redacted"/>
<bt:Image id="markAsSuspiciousIcon-80" DefaultValue="redacted"/>
</bt:Images>
<bt:Urls>
<bt:Url id="funcFile" DefaultValue="redacted"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="mikeeTestGroupLabel" DefaultValue="Email Feedback"/>
<bt:String id="mikeeTestMenuLabel" DefaultValue="Email Feedback"/>
<bt:String id="mikeeTestMenuTitle" DefaultValue="Actions providing feedback"/>
<bt:String id="delBlockButtonLabel" DefaultValue="Delete and Block Sender"/>
<bt:String id="delBlockButtonTitle" DefaultValue="Delete and Block Sender"/>
<bt:String id="mvToInboxButtonLabel" DefaultValue="Move to Inbox"/>
<bt:String id="mvToInboxButtonTitle" DefaultValue="Mark as safe and put back in Inbox"/>
<bt:String id="mvToLowPriorityButtonLabel" DefaultValue="Move to Low Priority Inbox"/>
<bt:String id="mvToLowPriorityButtonTitle" DefaultValue="Remove from safe list and move to Low Priority"/>
<bt:String id="markAsSuspiciousButtonLabel" DefaultValue="Report as Suspicious"/>
<bt:String id="markAsSuspiciousButtonTitle" DefaultValue="Flag as suspicious"/>
<bt:String id="quarantineButtonLabel" DefaultValue="End User Web"/>
<bt:String id="quarantineButtonTitle" DefaultValue="Go to End User Web"/>
<bt:String id="aboutButtonLabel" DefaultValue="About"/>
<bt:String id="aboutButtonTitle" DefaultValue="About"/>
<bt:String id="onePluginTabLabel" DefaultValue="redacted"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="mikeeTestMenuLabelDesc" DefaultValue="Give feedback about bulk and spam emails"/>
<bt:String id="delBlockButtonLabelDesc" DefaultValue="Move the email to Trash and add the sender to a block list"/>
<bt:String id="mvToInboxButtonLabelDesc" DefaultValue="Restore email to Inbox and remove from block list"/>
<bt:String id="mvToLowPriorityButtonLabelDesc" DefaultValue="Remove from safe list and move to Low Priority folder"/>
<bt:String id="markAsSuspiciousButtonLabelDesc" DefaultValue="Report this message as suspicious"/>
<bt:String id="quarantineButtonLabelDesc" DefaultValue="View you quarantine settings in end user web"/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
Я проверил манифест с помощью Office Addin Validator , который обеспечил следующий вывод:
$ validate-office-addin ~/ef-manifest.xml
Calling validation service. This might take a moment...
-------------------------------------
Validation: Passed
Based on the requirements specified in your manifest, your add-in can run on the following platforms; your add-in will be tested on these platforms when you submit it to the Office Store:
- Outlook 2013 or later
- Outlook 2016 or later
- Outlook 2016 for Mac
- Outlook on the Web
Important: This analysis is based on the requirements specified in your manifest and does not account for any runtime JavaScript calls within your add-in. For information about which API sets and features are supported on each platform, see Office Add-in host and platform availability. (https://dev.office.com/add-in-availability).
*This does not include mobile apps. You can opt-in to support mobile apps when you submit your add-in.
-------------------------------------
Я также подтвердил, что мой фиктивный шаблон работал со следующей настройкой:
Windows 10 Pro
Outlook 2019 Version 1808 (Build 10338.20019)
На рисунке ниже показаны надстройка, пользовательская вкладка, группа и кнопка: настраиваемая вкладка, работающая в Windows
Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь использовать тот же манифест на Mac с настройкой:
macOs High Sierra Version 10.13.6 (17G3025)
Outlook 2016 Version 16.16.4 (181110)
В этом случаенадстройка инсталлируется и первоначально может быть замечена в разделе «мои надстройки: пользовательские надстройки» магазина.Однако, когда я возвращаюсь в Outlook из магазина, надстройка не появляется.Если я впоследствии вернусь в магазин, надстройка больше не будет отображаться в разделе «Мои надстройки: пользовательские надстройки».
Некоторая информация, которую я уже собрал: MS ведет списокподдерживается / доступность для разных частей надстроек.В настоящее время команды добавления в списке перечислены как поддерживаемые на всех доступных платформах (Web, Windows, Mac, Android и т. Д.).См. Список здесь: MS Outlook добавляет поддержку
В документации Microsoft говорится: «Вы можете использовать команды надстройки, чтобы добавить кнопку на ленте или элемент в контекстное меню».,здесь: MS add в определении команд
В их документации говорится: «Команда надстройки появляется на ленте в виде кнопки.Когда пользователь устанавливает надстройку, его команды отображаются в пользовательском интерфейсе в виде группы кнопок, помеченных именем надстройки.Это может быть либо на вкладке ленты по умолчанию, либо на пользовательской вкладке ». Здесь: Поддержка пользовательских вкладок MS
Я уже сталкивался с проблемой, в которой упоминается, что группы лентнедоступно в Outlook для Mac: Связанный вопрос stackoverflow
Итак, учитывая эту краткую историю У меня есть два вопроса: 1) Поддерживаются ли пользовательские вкладки в Outlook для Mac?и если да 2) Я что-то упустил в файле манифеста?