如何在撰写邮件时在Outlook中显示插件?

时间:2017-01-07 21:32:52

标签: outlook office-js office-addins outlook-web-addins

我使用office-generator来构建一个Outlook插件,它似乎在以读取模式打开邮件时显示并运行,但是在编写新邮件时它没有显示在插件部分中。我想显示插件显示在撰写模式中,然后单击打开插件中的插件。

以下是生成的manifest.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="MailApp" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0">
  <Id>f1a2f021-ef67-4e8f-a08c-e24700c36c3d</Id>
  <Version>1.0.0.0</Version>
  <ProviderName>[Provider name]</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="Test"/>
  <Description DefaultValue="[Outlook Add-in description]"/>
  <IconUrl DefaultValue="https://localhost:8443/images/icon-32.png"/>
  <HighResolutionIconUrl DefaultValue="https://localhost:8443/images/hi-res-icon.png"/>
  <Hosts>
    <Host Name="Mailbox"/>
  </Hosts>
  <Requirements>
    <Sets>
      <Set Name="MailBox" MinVersion="1.1"/>
    </Sets>
  </Requirements>
  <FormSettings>
    <Form xsi:type="ItemRead">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://localhost:8443/appread/home/home.html"/>
        <RequestedHeight>250</RequestedHeight>
      </DesktopSettings>
    </Form>
    <Form xsi:type="ItemEdit">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://localhost:8443/appcompose/home/home.html"/>
      </DesktopSettings>
    </Form>
  </FormSettings>
  <Permissions>ReadWriteItem</Permissions>
  <Rule xsi:type="RuleCollection" Mode="Or">
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/>
    <Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit"/>
    <Rule xsi:type="ItemIs" ItemType="Appointment" 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">
            <OfficeTab id="TabDefault">
              <Group id="msgReadCmdGroup">
                <Label resid="groupLabel"/>
                <Control xsi:type="Button" id="msgReadPaneButton">
                  <Label resid="msgReadPaneButtonLabel"/>
                  <Supertip>
                    <Title resid="msgReadPaneButtonTitle"/>
                    <Description resid="msgReadPaneButtonDesc"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="icon-16"/>
                    <bt:Image size="32" resid="icon-32"/>
                    <bt:Image size="80" resid="icon-80"/>
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="readPaneUrl"/>
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>
          <ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
            <OfficeTab id="TabDefault">
              <Group id="attendeeCmdGroup">
                <Label resid="groupLabel"/>
                <Control xsi:type="Button" id="attendeePaneButton">
                  <Label resid="attendeePaneButtonLabel"/>
                  <Supertip>
                    <Title resid="attendeePaneButtonTitle"/>
                    <Description resid="attendeePaneButtonDesc"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="icon-16"/>
                    <bt:Image size="32" resid="icon-32"/>
                    <bt:Image size="80" resid="icon-80"/>
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="readPaneUrl"/>
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>
          <ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
            <OfficeTab id="TabDefault">
              <Group id="organizerCmdGroup">
                <Label resid="groupLabel"/>
                <Control xsi:type="Button" id="organizerGetSubject">
                  <Label resid="getSubjectLabel"/>
                  <Supertip>
                    <Title resid="getSubjectTitle"/>
                    <Description resid="getSubjectDesc"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="icon-16"/>
                    <bt:Image size="32" resid="icon-32"/>
                    <bt:Image size="80" resid="icon-80"/>
                  </Icon>
                  <Action xsi:type="ExecuteFunction">
                    <FunctionName>getSubject</FunctionName>
                  </Action>
                </Control>
                <Control xsi:type="Menu" id="organizerMenu">
                  <Label resid="menuLabel"/>
                  <Supertip>
                    <Title resid="menuTitle"/>
                    <Description resid="menuDescription"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="icon-16"/>
                    <bt:Image size="32" resid="icon-32"/>
                    <bt:Image size="80" resid="icon-80"/>
                  </Icon>
                  <Items>
                    <Item id="organizerSetSubject">
                      <Label resid="setSubjectLabel"/>
                      <Supertip>
                        <Title resid="setSubjectTitle"/>
                        <Description resid="setSubjectDesc"/>
                      </Supertip>
                      <Icon>
                        <bt:Image size="16" resid="icon-16"/>
                        <bt:Image size="32" resid="icon-32"/>
                        <bt:Image size="80" resid="icon-80"/>
                      </Icon>
                      <Action xsi:type="ExecuteFunction">
                        <FunctionName>setSubject</FunctionName>
                      </Action>
                    </Item>
                    <Item id="organizerAddRecip">
                      <Label resid="addRecipLabel"/>
                      <Supertip>
                        <Title resid="addRecipTitle"/>
                        <Description resid="addRecipDesc"/>
                      </Supertip>
                      <Icon>
                        <bt:Image size="16" resid="icon-16"/>
                        <bt:Image size="32" resid="icon-32"/>
                        <bt:Image size="80" resid="icon-80"/>
                      </Icon>
                      <Action xsi:type="ExecuteFunction">
                        <FunctionName>addToRecipients</FunctionName>
                      </Action>
                    </Item>
                  </Items>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="icon-16" DefaultValue="https://localhost:8443/images/icon-16.png"/>
        <bt:Image id="icon-32" DefaultValue="https://localhost:8443/images/icon-32.png"/>
        <bt:Image id="icon-80" DefaultValue="https://localhost:8443/images/icon-80.png"/>
      </bt:Images>
      <bt:Urls>
        <bt:Url id="funcFile" DefaultValue="https://localhost:8443/FunctionFile/Functions.html"/>
        <bt:Url id="readPaneUrl" DefaultValue="https://localhost:8443/appread/home/home.html"/>
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="groupLabel" DefaultValue="Sample Add-in"/>
        <bt:String id="msgReadPaneButtonLabel" DefaultValue="See message details"/>
        <bt:String id="msgReadPaneButtonTitle" DefaultValue="See message details"/>
        <bt:String id="attendeePaneButtonLabel" DefaultValue="See appointment details"/>
        <bt:String id="attendeePaneButtonTitle" DefaultValue="See appointment details"/>
        <bt:String id="setSubjectLabel" DefaultValue="Set subject"/>
        <bt:String id="setSubjectTitle" DefaultValue="Set subject"/>
        <bt:String id="getSubjectLabel" DefaultValue="Get subject"/>
        <bt:String id="getSubjectTitle" DefaultValue="Get subject"/>
        <bt:String id="addRecipLabel" DefaultValue="Add recipient"/>
        <bt:String id="addRecipTitle" DefaultValue="Add recipient"/>
        <bt:String id="menuLabel" DefaultValue="Modify message"/>
        <bt:String id="menuTitle" DefaultValue="Modify message"/>
      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="msgReadPaneButtonDesc" DefaultValue="Opens a task pane showing the subject and sender of the currently selected message"/>
        <bt:String id="attendeePaneButtonDesc" DefaultValue="Opens a task pane showing the subject and sender of the currently selected appointment"/>
        <bt:String id="setSubjectDesc" DefaultValue="Sets the subject to 'Hello World!'"/>
        <bt:String id="getSubjectDesc" DefaultValue="Gets the current subject and displays it in the info bar"/>
        <bt:String id="addRecipDesc" DefaultValue="Add yourself to the recipient list (the To line for messages, the Required attendees line for appointments)"/>
        <bt:String id="menuDescription" DefaultValue="Expand this menu to set this subject or add yourself to the To line."/>
      </bt:LongStrings>
    </Resources>
  </VersionOverrides>
</OfficeApp>

1 个答案:

答案 0 :(得分:4)

这在VersionOverides部分中处理。在您收录的清单中,您会注意到ExentionPoint定义为<ExtensionPoint xsi:type="MessageReadCommandSurface">。这定义了消息阅读的扩展点。

要在撰写期间启用加载项,您需要为MessageComposeCommandSurface添加ExtentionPoint。

如果您只想在撰写期间展示,只需删除MessageReadCommandSurface部分即可。这同样适用于AppointmentAttendeeCommandSurface(阅读您被邀请的约会)和AppointmentOrganizerCommandSurface(阅读您创建的约会)。