代码之家  ›  专栏  ›  技术社区  ›  THpubs

在outlookaddin中,如何检查我们是处于编写模式还是读取模式?

  •  1
  • THpubs  · 技术社区  · 8 年前

    我正在创建一个outlook外接程序,并在React应用程序中使用officejsapi。在这里,我想为撰写模式加载一组特定的功能,为阅读模式加载另一组功能。所以我的问题是,怎么看我现在处于哪种模式?

    2 回复  |  直到 8 年前
        1
  •  3
  •   Slava Ivanov    8 年前

    在 manifest.xml 你应该有不同的文件 ExtensionPoint 对于撰写和阅读视图,如下所示。。。

    <ExtensionPoint xsi:type="MessageReadCommandSurface">
    </ExtensionPoint>
    <ExtensionPoint xsi:type="MessageComposeCommandSurface">
    </ExtensionPoint>
    

    Action 标记为 ExecuteFunction 或 ShowTaskpane 类型。如果你有 键入您只需为read和compose surface指定不同的函数名,如下所示。。。

    <ExtensionPoint xsi:type="MessageReadCommandSurface">
    <Action xsi:type="ExecuteFunction">
        <FunctionName>FunctionSpecificToReadView</FunctionName>
    </Action>
    </ExtensionPoint>
    <ExtensionPoint xsi:type="MessageComposeCommandSurface">
    <Action xsi:type="ExecuteFunction">
        <FunctionName>FunctionSpecificToComposeView</FunctionName>
    </Action>
    </ExtensionPoint>
    

    如果你有 显示任务窗格 键入您将使用不同的文件名加载到框架内,或添加一些参数,如果您使用以下相同的文件。。。

    <ExtensionPoint xsi:type="MessageReadCommandSurface">
    <Action xsi:type="ShowTaskpane">
        <SourceLocation resid="readTaskPaneUrl" />
    </Action>
    </ExtensionPoint>
    <ExtensionPoint xsi:type="MessageComposeCommandSurface">
    <Action xsi:type="ShowTaskpane">
        <SourceLocation resid="composeTaskPaneUrl" />
    </Action>
    </ExtensionPoint>
    ...
    <Resources>
    <bt:Urls>
        <bt:Url id="readTaskPaneUrl" DefaultValue="https://localhost:44300/read.html"/>
        <bt:Url id="composeTaskPaneUrl" DefaultValue="https://localhost:44300/compose.html"/>
    </bt:Urls>
    </Resources>
    

        2
  •  7
  •   SureshGowtham S    8 年前

    如果您不想为read和compose模式创建两个独立的登录页,我通常会检查api以了解模式。

    if (Office.context.mailbox.item.displayReplyForm != undefined) {
      // read mode
    } else {
      // compose mode
    }