如何在 Dialog API Office JS 中处理 event.completed()

How to handle event.completed() in Dialog API Office JS

我目前正在通过 Outlook 功能区上的按钮调用对话框。该对话框工作正常,没有任何问题,但即使在对话框 opened/closed.

之后,也会出现消息“...加载项正在处理您的请求”

对话框的调用方式如下..

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();
}

如何避免这条消息?也尝试在 EventHandler 回调 (processMessage) 中关闭事件,但没有成功。

对于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();
}