Контекст : у меня есть надстройка типа MailApp, в которой, когда в электронном письме есть вложение, отображается надстройка и при нажатии на нее происходит следующее.
- Экран приземления отображается с CTA, чтобы «начать».
При ее нажатии я вызываю функцию displayDialogAsync следующим образом:
function openDialog(url, callBack){
Office.context.ui.displayDialogAsync(url,{height: 768, width:
1024},function(asyncResult){
dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived,
callBack.bind(dialog)); })
}
- Это открывает iframe внутри диалогового окна, которое запускает oauth-аутентификацию моего приложения, куда в моём приложении отправляется токен oauth
вернуться к надстройке, позвонив
Office.context.ui.messageParent(data)
- После получения данных в callBack я вызвал this.close () (привязываю диалог к callBack).
- Это загрузит вложение на мой сервер и затем даст мне URL, чтобы начать процесс подписания, который снова открывается
вызов той же функции openDialog, которую я упомянул в шаге 2.
Проблема : После открытия URL-адреса и завершения потока и вызова Office.context.ui.messageParent (data) не отправляет данные обратно в надстройку по какой-то странной причине (это происходит, когда диалоговое окно открыто> закрыто> открыто в том же сеансе).
Ссылка используется : https://docs.microsoft.com/en-us/office/dev/add-ins/develop/dialog-api-in-office-add-ins
Мин. Версия API : 1,5
Разрешение : ReadWriteMailbox.
Версия Outlook : 16.12 на Mac.
Манифест : https://pastebin.com/raw/rVzSZnMg
PS: Пожалуйста, используйте вышеуказанный манифест для проверки того же. И дайте мне знать, если мне нужно предоставить больше данных для того же, Microsoft отклонила мою сборку из-за этого. Я использую последнюю версию Outlook 2016 для Mac.