2

更新#1:

TL;DR:我想定位:

  • Outlook 2016 或更高版本
  • 网络上的 Outlook
  • 适用于 Mac 的 Outlook 2016
  • 适用于 iOS 的 Outlook
  • 安卓版展望

我需要 Mailbox 1.5 以支持调用 Outlook REST API并支持可固定任务窗格

由于可固定任务窗格仅在 Outlook 2016 for Windows 中受支持,并且邮箱 1.5 目前仅在 Outlook 网页版中受支持,因此我需要<VersionOverrides>在清单的部分中设置邮箱 1.5。

根据验证报告:

Your add-in manifest includes Tablet Settings and Phone Settings, however 
Mailbox 1.4 is used in the core of your manifest. This mailbox is not
supported in the Outlook Web App.

这听起来与Office 加载项主机和平台可用性所说的相冲突。所以,我在清单的基础级别设置了邮箱 1.3。


这是我的清单:

<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp 
  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" xsi:type="MailApp">
  <Id>3042ed3a-6ca5-4b37-b5e3-a591f5605332</Id>
  <Version>1.0.1.0</Version>
  <ProviderName>Leap Legal Software</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="LEAP Mail Manager" />
  <Description DefaultValue="Save your mail to LEAP."/>
  <IconUrl DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
  <HighResolutionIconUrl DefaultValue="https://outlookapp.leap365.com/images/icon-128.png" />
  <SupportUrl DefaultValue="https://leap.force.com/us/s/" />
  <AppDomains>
    <!--LEAP Add-in Domains -->
    <AppDomain>https://outlookapp-dev.leap365.com/</AppDomain>
    <AppDomain>https://outlookapp-test.leap365.com/</AppDomain>
    <AppDomain>https://outlookapp.leap365.com/</AppDomain>
    <!--TitleX Add-in Domains -->
    <AppDomain>https://outlookapp.dev.titlex.com.au/</AppDomain>
    <AppDomain>https://outlookapp.test.titlex.com.au/</AppDomain>
    <AppDomain>https://outlookapp.titlex.com.au/</AppDomain>
    <!-- LEAP Auth -->
    <AppDomain>https://auth-dev.leap.services/</AppDomain>
    <AppDomain>https://auth-test.leap.services/</AppDomain>
    <AppDomain>https://auth.leap.services/</AppDomain>
    <!-- TitleX Auth -->
    <AppDomain>https://login.dev.titlex.com.au/</AppDomain>
    <AppDomain>https://login.test.titlex.com.au/</AppDomain>
    <AppDomain>https://login.titlex.com.au/</AppDomain>
    <AppDomain>https://login.dev.titlex.co.uk/</AppDomain>
    <AppDomain>https://login.test.titlex.co.uk/</AppDomain>
    <AppDomain>https://login.titlex.co.uk/</AppDomain>
    <AppDomain>https://login.dev.titlex.com/</AppDomain>
    <AppDomain>https://login.test.titlex.com/</AppDomain>
    <AppDomain>https://login.titlex.com/</AppDomain>
  </AppDomains>
  <Hosts>
    <Host Name="Mailbox" />
  </Hosts>
  <Requirements>
    <Sets DefaultMinVersion="1.3">
      <Set Name="Mailbox" MinVersion="1.3" />
    </Sets>
  </Requirements>
  <FormSettings>
    <Form xsi:type="ItemRead">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html"/>
        <RequestedHeight>280</RequestedHeight>
      </DesktopSettings>
      <TabletSettings>
        <SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html" />
        <RequestedHeight>280</RequestedHeight>
      </TabletSettings>
      <PhoneSettings>
        <SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html" />
      </PhoneSettings>
    </Form>
  </FormSettings>
  <Permissions>ReadWriteMailbox</Permissions>
  <Rule xsi:type="RuleCollection" Mode="Or">
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" /></Rule>
  <DisableEntityHighlighting>false</DisableEntityHighlighting>
  <VersionOverrides 
    xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
    <Requirements>
      <bt:Sets DefaultMinVersion="1.5">
        <bt:Set Name="Mailbox" MinVersion="1.5" />
      </bt:Sets>
    </Requirements>
    <Hosts>
      <Host xsi:type="MailHost">
        <DesktopFormFactor>
          <FunctionFile resid="Leap.Functions.Url" />
          <!-- Message Read -->
          <ExtensionPoint xsi:type="MessageReadCommandSurface">
            <CustomTab id="TabLeap">
              <Group id="Leap.Group1">
                <Label resid="Leap.Group1Label" />
                <Control xsi:type="Button" id="Leap.DefaultCommand">
                  <Label resid="Leap.DefaultCommand.Label" />
                  <Supertip>
                    <Title resid="Leap.DefaultCommand.Label" />
                    <Description resid="Leap.DefaultCommand.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Leap.Icon.16" />
                    <bt:Image size="32" resid="Leap.Icon.32" />
                    <bt:Image size="80" resid="Leap.Icon.80" />
                    <bt:Image size="20" resid="Leap.Icon.20" />
                    <bt:Image size="24" resid="Leap.Icon.24" />
                    <bt:Image size="40" resid="Leap.Icon.40" />
                    <bt:Image size="48" resid="Leap.Icon.48" />
                    <bt:Image size="64" resid="Leap.Icon.64" />
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="Leap.Taskpane.Url" />
                  </Action>
                </Control>
              </Group>
              <Label resid="Leap.TabLabel"/>
            </CustomTab>
          </ExtensionPoint>
          <!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
        </DesktopFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="Leap.Icon.16" DefaultValue="https://outlookapp.leap365.com/images/icon-16.png"/>
        <bt:Image id="Leap.Icon.32" DefaultValue="https://outlookapp.leap365.com/images/icon-32.png"/>
        <bt:Image id="Leap.Icon.80" DefaultValue="https://outlookapp.leap365.com/images/icon-80.png"/>
        <bt:Image id="Leap.Icon.20" DefaultValue="https://outlookapp.leap365.com/images/icon-20.png" />
        <bt:Image id="Leap.Icon.24" DefaultValue="https://outlookapp.leap365.com/images/icon-24.png" />
        <bt:Image id="Leap.Icon.25" DefaultValue="https://outlookapp.leap365.com/images/icon-25.png" />
        <bt:Image id="Leap.Icon.40" DefaultValue="https://outlookapp.leap365.com/images/icon-40.png" />
        <bt:Image id="Leap.Icon.48" DefaultValue="https://outlookapp.leap365.com/images/icon-48.png" />
        <bt:Image id="Leap.Icon.64" DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
      </bt:Images>
      <bt:Urls>
        <bt:Url id="Leap.Taskpane.Url" DefaultValue="https://outlookapp.leap365.com/index.html" />
        <bt:Url id="Leap.Functions.Url" DefaultValue="https://outlookapp.leap365.com/functions.html" />
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="Leap.TabLabel" DefaultValue="LEAP Mail Manager" />
        <bt:String id="Leap.Group1Label" DefaultValue="LEAP" />
        <bt:String id="Leap.DefaultCommand.Label" DefaultValue="LEAP Mail Manager" />
        <bt:String id="Leap.DefaultCommand.Title" DefaultValue="LEAP Mail Manager" />
      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="Leap.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
        <bt:String id="Leap.Description" DefaultValue="Save your mail to LEAP." />
      </bt:LongStrings>
    </Resources>
    <!-- NOTE: TO SUPPORT A PINNABLE TASKPANE AND MOBILEFORMFACTOR -->
    <VersionOverrides 
      xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
      <Requirements>
        <bt:Sets DefaultMinVersion="1.5">
          <bt:Set Name="Mailbox" MinVersion="1.5" />
        </bt:Sets>
      </Requirements>
      <Hosts>
        <Host xsi:type="MailHost">
          <DesktopFormFactor>
            <FunctionFile resid="Leap.Functions.Url" />
            <!-- Message Read -->
            <ExtensionPoint xsi:type="MessageReadCommandSurface">
              <CustomTab id="TabLeap">
                <Group id="Leap.Group1">
                  <Label resid="Leap.Group1Label" />
                  <Control xsi:type="Button" id="Leap.DefaultCommand">
                    <Label resid="Leap.DefaultCommand.Label" />
                    <Supertip>
                      <Title resid="Leap.DefaultCommand.Label" />
                      <Description resid="Leap.DefaultCommand.Tooltip" />
                    </Supertip>
                    <Icon>
                      <bt:Image size="16" resid="Leap.Icon.16" />
                      <bt:Image size="32" resid="Leap.Icon.32" />
                      <bt:Image size="80" resid="Leap.Icon.80" />
                      <bt:Image size="20" resid="Leap.Icon.20" />
                      <bt:Image size="24" resid="Leap.Icon.24" />
                      <bt:Image size="40" resid="Leap.Icon.40" />
                      <bt:Image size="48" resid="Leap.Icon.48" />
                      <bt:Image size="64" resid="Leap.Icon.64" />
                    </Icon>
                    <Action xsi:type="ShowTaskpane">
                      <SourceLocation resid="Leap.Taskpane.Url" />
                      <SupportsPinning>true</SupportsPinning>
                    </Action>
                  </Control>
                  <!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
                </Group>
                <Label resid="Leap.TabLabel"/>
              </CustomTab>
            </ExtensionPoint>
            <!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
          </DesktopFormFactor>
          <!-- See https://docs.microsoft.com/en-us/outlook/add-ins/add-mobile-support -->
          <MobileFormFactor>
            <FunctionFile resid="Leap.Functions.Url" />
            <ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
              <Group id="Leap.Group1">
                <Label resid="Leap.Group1Label" />
                <Control xsi:type="MobileButton" id="Leap.DefaultCommand">
                  <Label resid="Leap.DefaultCommand.Label" />
                  <Icon xsi:type="bt:MobileIconList">
                    <bt:Image size="25" scale="1" resid="Leap.Icon.25" />
                    <bt:Image size="25" scale="2" resid="Leap.Icon.25" />
                    <bt:Image size="25" scale="3" resid="Leap.Icon.25" />
                    <bt:Image size="32" scale="1" resid="Leap.Icon.32" />
                    <bt:Image size="32" scale="2" resid="Leap.Icon.32" />
                    <bt:Image size="32" scale="3" resid="Leap.Icon.32" />
                    <bt:Image size="48" scale="1" resid="Leap.Icon.48" />
                    <bt:Image size="48" scale="2" resid="Leap.Icon.48" />
                    <bt:Image size="48" scale="3" resid="Leap.Icon.48" />
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="Leap.Taskpane.Url" />
                  </Action>
                </Control>
              </Group>
            </ExtensionPoint>
          </MobileFormFactor>
        </Host>
      </Hosts>
      <Resources>
        <bt:Images>
          <bt:Image id="Leap.Icon.16" DefaultValue="https://outlookapp.leap365.com/images/icon-16.png"/>
          <bt:Image id="Leap.Icon.32" DefaultValue="https://outlookapp.leap365.com/images/icon-32.png"/>
          <bt:Image id="Leap.Icon.80" DefaultValue="https://outlookapp.leap365.com/images/icon-80.png"/>
          <bt:Image id="Leap.Icon.20" DefaultValue="https://outlookapp.leap365.com/images/icon-20.png" />
          <bt:Image id="Leap.Icon.24" DefaultValue="https://outlookapp.leap365.com/images/icon-24.png" />
          <bt:Image id="Leap.Icon.25" DefaultValue="https://outlookapp.leap365.com/images/icon-25.png" />
          <bt:Image id="Leap.Icon.40" DefaultValue="https://outlookapp.leap365.com/images/icon-40.png" />
          <bt:Image id="Leap.Icon.48" DefaultValue="https://outlookapp.leap365.com/images/icon-48.png" />
          <bt:Image id="Leap.Icon.64" DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
        </bt:Images>
        <bt:Urls>
          <bt:Url id="Leap.Taskpane.Url" DefaultValue="https://outlookapp.leap365.com/index.html" />
          <bt:Url id="Leap.Functions.Url" DefaultValue="https://outlookapp.leap365.com/functions.html" />
        </bt:Urls>
        <bt:ShortStrings>
          <bt:String id="Leap.TabLabel" DefaultValue="LEAP Mail Manager" />
          <bt:String id="Leap.Group1Label" DefaultValue="LEAP" />
          <bt:String id="Leap.DefaultCommand.Label" DefaultValue="LEAP Mail Manager" />
          <bt:String id="Leap.DefaultCommand.Title" DefaultValue="LEAP Mail Manager" />
        </bt:ShortStrings>
        <bt:LongStrings>
          <bt:String id="Leap.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
          <bt:String id="Leap.Description" DefaultValue="Save your mail to LEAP." />
        </bt:LongStrings>
      </Resources>
    </VersionOverrides>
  </VersionOverrides>
</OfficeApp>

以下是上述加载项清单的validate-office-addin结果:

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 Service Pack 1 or later
  - Outlook 2016 or later
  - Outlook on the Web
  - Outlook 2016 for Mac
  - Outlook for iOS
  - Outlook for Android
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 platfo
rm 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.
-------------------------------------

但是,微软的验证报告说:

Your add-in is not working in Outlook 2016, Outlook 2013, Outlook for Mac, 
the Outlook app on iOS or in the Outlook app on Android. Your add-in is not 
available to be inserted in the above platforms. If you do not support 2013 
SP1 because you are using an API only available in 2016/Online, you must put 
these apis in the requirements tag in your manifest. If you are not using an 
API only available in 2016/Online, then you must support 2013 SP1.

我已经从 OWA 侧加载了加载项

我可以看到加载项:

  • Outlook 2016 或更高版本 (Windows)
  • 网络上的 Outlook (OWA)

我尚未测试加载项是否出现在 Outlook 2016 for Mac 上。

对于我的生活,我似乎无法让加载项出现:

  • Outlook 2013 Service Pack 1 或更高版本
  • 适用于 iOS 的 Outlook
  • 安卓版展望

我不明白为什么。我在清单中遗漏了什么吗?我是否可能错误地配置了清单?请帮忙。

4

2 回答 2

1

通过MobileFormFactorVersionOverridesV1_1. 有关MobileFormFactor 的更多信息,请参见此处

Outlook 2013 不支持邮箱 1.5(有关可用性信息,请参阅此处)要让您的加载项出现在 Outlook 2013 中,您需要使用邮箱 1.4 或更低版本

于 2017-09-19T13:00:41.550 回答
0

为加载项和商店团队的响应添加一些细节。

Outlook 2013 问题源于 Outlook 遵循的两个相互冲突的规则:

  • 您已1.3在核心清单中声明了最低邮箱版本。
  • 您还声明了一个VersionOverridesV1_0具有最低版本的部分1.5

验证工具声明支持 Outlook 2013 Service Pack 1 或更高版本,因为(正如应用商店团队所述),此版本的 Outlook 支持1.3.

Outlook 2013 Service Pack 1 或更高版本还支持 通过VersionOverridesV1_0. 一旦 Outlook 看到您声明了加载项命令,它将转向使用加载项命令。但是,由于这些被定义为需要1.5Outlook 2013 无法呈现它们。

为了让您的加载项命令显示在 Outlook 2013 中,您需要确保所需的最低版本VersionOverridesV1_01.4或更低(请注意,VersionOverridesV1_1应保留在1.5)。

于 2017-10-27T19:25:01.457 回答