В надстройке Outlook, как проверить, находимся ли мы в режиме создания или чтения? - PullRequest
0 голосов
/ 12 сентября 2018

Я создаю надстройку для Outlook и использую API OfficeJS в приложении React.Там я хочу загрузить определенный набор функций для режима компоновки и другой набор функций для режима чтения.Итак, мой вопрос, как узнать, в каком режиме я сейчас нахожусь?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Я обычно проверяю, чтобы API знали режим, если вы не хотите создавать две отдельные целевые страницы для режимов чтения и компоновки.

Вы можете проверить API displayReplyForm, это API режима чтения, так что если это не определено, то вы находитесь в режиме создания.

if (Office.context.mailbox.item.displayReplyForm != undefined) {
  // read mode
} else {
  // compose mode
}
0 голосов
/ 12 сентября 2018

В файле manifest.xml у вас должны быть разные ExtensionPoint для составления и чтения, как следует ...

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

Каждый из этих разделов должен иметь тег Action с ExecuteFunctionили ShowTaskpane тип.Если у вас есть тип ExecuteFunction, вы просто указываете различные имена функций для чтения и компоновки поверхности следующим образом ...

<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>

Если вы используете тип ShowTaskpane, вы бы использовали разные имена файлов для загрузки внутри фрейма.или добавьте какой-либо параметр, если вы используете тот же файл, как указано ниже ...

<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>

Внутри каждой HTML-страницы вы знаете, на какую поверхность была вызвана ваша надстройка.

...