Как обрабатывать event.completed () в Dialog API Office JS - PullRequest
0 голосов
/ 22 января 2020

В настоящее время я вызываю диалог из кнопки на ленте в Outlook. Диалоговое окно работает нормально без каких-либо проблем, но сообщение «... надстройка работает по вашему запросу» появляется даже после того, как диалоговое окно открыто / закрыто.

Вот как этот диалог вызывается ..

function openDialog(event) {
    Office.context.ui.displayDialogAsync('https://xxxx.azurewebsites.net', { height: 80, width: 92 },
        function (asyncResult) {
            dialog = asyncResult.value;
            dialog.addEventHandler(Office.EventType.DialogMessageReceived, processMessage);
            event.completed();
        }
    );
}

function processMessage(event) {
    event.completed();
}

add-in message

Как избежать этого сообщения? Пытался закрыть событие в обратном вызове EventHandler (processMessage), но не получилось.

1 Ответ

0 голосов
/ 31 января 2020

Для addEventHandler, если вы хотите завершить событие, когда диалоговое окно закрыто, вы можете использовать событие DialogEventReceived , которое запускается, когда диалоговое окно было закрыто или выгружено иным образом. Кроме того, функция-обработчик (processMessage) должна использовать имя параметра, отличное от события, чтобы не перезаписывать переменную.

function openDialog(event) {
    Office.context.ui.displayDialogAsync('https://xxxx.azurewebsites.net', { height: 80, width: 92 },
        function (asyncResult) {
            dialog = asyncResult.value;
            dialog.addEventHandler(Office.EventType.DialogEventReceived, processMessage);
            event.completed();
        }
    );
}

function processMessage(args) {
    event.completed();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...