Outlook中的加载项命令是否取代自定义窗格?

Outlook中的加载项命令是否取代自定义窗格?,outlook,office-addins,office-js,office365-apps,Outlook,Office Addins,Office Js,Office365 Apps,如果我添加VersionOverrides元素来定义自定义功能区按钮以启动外接程序的任务窗格,则自定义窗格的选项卡在Outlook 2016中不再可见,而是在Outlook Online/OWA中。它是在没有任何激活规则的情况下定义的,因此它应该出现在每个已读消息中。那么,如果我定义了一个自定义功能区按钮来启动该选项卡,那么该选项卡被隐藏是一个bug还是出于设计?如果删除VersionOverrides元素,该选项卡将再次出现。编辑2016年11月。对于Outlook加载项,自定义窗格被视为绝对

如果我添加VersionOverrides元素来定义自定义功能区按钮以启动外接程序的任务窗格,则自定义窗格的选项卡在Outlook 2016中不再可见,而是在Outlook Online/OWA中。它是在没有任何激活规则的情况下定义的,因此它应该出现在每个已读消息中。那么,如果我定义了一个自定义功能区按钮来启动该选项卡,那么该选项卡被隐藏是一个bug还是出于设计?如果删除VersionOverrides元素,该选项卡将再次出现。

编辑2016年11月。对于Outlook加载项,自定义窗格被视为绝对删除

旧答案:

我曾与Office extensibility的一位高级产品经理讨论过类似的话题。我希望他不会介意我引用他的话。应考虑Outlook web加载项自定义窗格:

只是对目前不支持Office命令的客户端的传统支持。命令提供了一种更直观、更自然、更吸引人的方式来使用外接程序,这就是为什么我们非常努力地使用它们

话虽如此,OWA还不支持命令。Owa在清单中查找旧的
FormSettings
元素,并在加载项命令不存在时显示与以前相同的自定义窗格。Office 2016也是如此,因为出于追溯兼容性的目的,清单中没有
VersionOverrides
元素

现在,对于我们这些插件开发人员来说,很难在OWA和桌面之间提出一个具有完全不同UX的插件。然后,如果您想让自定义窗格在Outlook Desktop 2016中使用外接程序命令(编写本文时仅支持命令的主机),则必须在
VersionOverrides
中使用类型为
xsi:type=“CustomPane”
ExtensionPoint
指定它,请参见此示例

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" 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="functionFile" />
            <ExtensionPoint xsi:type="CustomPane">
              <RequestedHeight>250</RequestedHeight>
              <SourceLocation resid="customPaneUrl"/>
              <Rule xsi:type="RuleCollection" Mode="Or">
                <Rule xsi:type="ItemIs" ItemType="Message"/>
              </Rule>
            </ExtensionPoint>

            <ExtensionPoint xsi:type="MessageReadCommandSurface">
              <OfficeTab id="TabDefault">
                <Group id="msgReadDemoGroup">
                  <Label resid="groupLabel" />
                  <Tooltip resid="groupTooltip" />
                  <Control xsi:type="Button" id="msgReadOpenPaneButton">
                    <Label resid="paneReadButtonLabel" />
                    <Tooltip resid="paneReadButtonTooltip" />
                    <Supertip>
                      <Title resid="paneReadSuperTipTitle" />
                      <Description resid="paneReadSuperTipDescription" />
                    </Supertip>
                    <Icon>
                      <bt:Image size="80" resid="test-icon-80" />
                    </Icon>
                    <Action xsi:type="ShowTaskpane">
                      <SourceLocation resid="taskPaneUrl" />
                    </Action>
                  </Control>
                </Group>
              </OfficeTab>
            </ExtensionPoint>
          </DesktopFormFactor>
        </Host>
      </Hosts>
      <Resources>

      </Resources>
    </VersionOverrides>

250

编辑2016年11月。对于Outlook加载项,自定义窗格被视为绝对删除

旧答案:

我曾与Office extensibility的一位高级产品经理讨论过类似的话题。我希望他不会介意我引用他的话。应考虑Outlook web加载项自定义窗格:

只是对目前不支持Office命令的客户端的传统支持。命令提供了一种更直观、更自然、更吸引人的方式来使用外接程序,这就是为什么我们非常努力地使用它们

话虽如此,OWA还不支持命令。Owa在清单中查找旧的
FormSettings
元素,并在加载项命令不存在时显示与以前相同的自定义窗格。Office 2016也是如此,因为出于追溯兼容性的目的,清单中没有
VersionOverrides
元素

现在,对于我们这些插件开发人员来说,很难在OWA和桌面之间提出一个具有完全不同UX的插件。然后,如果您想让自定义窗格在Outlook Desktop 2016中使用外接程序命令(编写本文时仅支持命令的主机),则必须在
VersionOverrides
中使用类型为
xsi:type=“CustomPane”
ExtensionPoint
指定它,请参见此示例

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" 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="functionFile" />
            <ExtensionPoint xsi:type="CustomPane">
              <RequestedHeight>250</RequestedHeight>
              <SourceLocation resid="customPaneUrl"/>
              <Rule xsi:type="RuleCollection" Mode="Or">
                <Rule xsi:type="ItemIs" ItemType="Message"/>
              </Rule>
            </ExtensionPoint>

            <ExtensionPoint xsi:type="MessageReadCommandSurface">
              <OfficeTab id="TabDefault">
                <Group id="msgReadDemoGroup">
                  <Label resid="groupLabel" />
                  <Tooltip resid="groupTooltip" />
                  <Control xsi:type="Button" id="msgReadOpenPaneButton">
                    <Label resid="paneReadButtonLabel" />
                    <Tooltip resid="paneReadButtonTooltip" />
                    <Supertip>
                      <Title resid="paneReadSuperTipTitle" />
                      <Description resid="paneReadSuperTipDescription" />
                    </Supertip>
                    <Icon>
                      <bt:Image size="80" resid="test-icon-80" />
                    </Icon>
                    <Action xsi:type="ShowTaskpane">
                      <SourceLocation resid="taskPaneUrl" />
                    </Action>
                  </Control>
                </Group>
              </OfficeTab>
            </ExtensionPoint>
          </DesktopFormFactor>
        </Host>
      </Hosts>
      <Resources>

      </Resources>
    </VersionOverrides>

250

谢谢Benoit。他们还需要考虑的是,大多数水平定制窗格的UX设计是具有挑战性的,因此它在窄的、垂直取向的任务窗格中同样有效。如果他们能在这方面支持水平任务窗格,那就太好了。我完全同意。我的回答对您有帮助吗?我了解其中的机制-我们都是这方面的专家-但我特别希望从MS或文档中得到确认,说明外接程序命令的声明会覆盖外接程序的声明,以显示为自定义窗格外接程序。我将在YammerEric中与团队跟进,我不确定我是否理解-您是说您在版本覆盖中定义了自定义窗格扩展点和外接程序命令,但仅显示命令?我不能重述-你能粘贴你的清单吗?谢谢Benoit。他们还需要考虑的是,大多数水平定制窗格的UX设计是具有挑战性的,因此它在窄的、垂直取向的任务窗格中同样有效。如果他们能在这方面支持水平任务窗格,那就太好了。我完全同意。我的回答对您有帮助吗?我了解其中的机制-我们都是这方面的专家-但我特别希望从MS或文档中得到确认,说明外接程序命令的声明会覆盖外接程序的声明,以显示为自定义窗格外接程序。我会跟Yammeric的团队跟进,我不确定我是否理解-你是说你定义了一个定制