displayNewMessageForm не работает при использовании внутри ответа Outlook - PullRequest
0 голосов
/ 26 марта 2019

У меня есть надстройка Outlook, которая доступна в режиме создания и чтения.Если пользователь проходит надстройку compose, в конце некоторый контент, созданный пользователем, добавляется в тело письма.Вы можете увидеть надстройку compose только при нажатии кнопки «NEW».

В сценарии чтения у меня есть 3 варианта раскрывающегося списка команд надстройки - New, Reply, ReplyAll.Пользователь проходит надстройку, так же, как режим Compose, но в конце я использую displayNewMessageForm, displayReplyForm и displayReplyAllForm , чтобы создать новое электронное письмо в зависимости от выбранного действия.

Пока все отлично работает.Возникает проблема:

Когда пользователь открывает электронное письмо и использует действия reply / replyall / forward Outlook, моя надстройка отображается в новом окне.(Стрелка просто показывает значок моей надстройки) enter image description here Теперь пользователь нажимает надстройку, завершает необходимые шаги, и в конце я снова использую displayNewMessageForm, displayReplyForm и displayReplyAllForm для создания нового электронного письма.Но на этом этапе вышеуказанные вызовы API не работают.

Сообщение об ошибке: Office.context.mailbox.displayNewMessageForm не является функцией.Хотя я не думаю, что это связано с кодом, вот код для этих вызовов API.

Formdata и параметры правильно сформированы, и он отлично работает наРежим чтения.

 if (selectedEmailType == 'New' || selectedEmailType == 'NewEmail') {
                                                Office.context.mailbox.displayNewMessageForm(parameters);
                                        }
                                        if (selectedEmailType == 'ReplyEmail') {
                                                Office.context.mailbox.item.displayReplyForm(
                                                        formdata,
                                                        function(asyncResult) {
                                                                console.log(asyncResult.value);
                                                                Office.context.ui.closeContainer();
                                                        }
                                                );
                                        } else if ((selectedEmailType == 'ReplyAllEmail')) {
                                                Office.context.mailbox.item.displayReplyAllForm(
                                                        formdata,
                                                        function(asyncResult) {
                                                                console.log(asyncResult.value);
                                                                Office.context.ui.closeContainer();
                                                        }
                                                );
                                        }

1 Ответ

1 голос
/ 27 марта 2019

Если я правильно понимаю вашу проблему, вы пытаетесь использовать displayReplyForm и другие упомянутые API-интерфейсы во время работы надстройки при создании письма. Эти API могут использоваться только в режиме чтения и не будут доступны в режиме составления. Вы можете найти документацию здесь . «Применимый режим Outlook» для этих API - «Чтение».

...