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

问题描述 投票:0回答:1

我当前正在从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)中的事件,但不起作用。

office-js outlook-web-addins office-dialog-api
1个回答
0
投票

对于addEventHandler,如果要在关闭对话框时完成事件,则可以使用DialogEventReceived事件,该事件在关闭对话框或卸载对话框时触发。另外,处理程序函数(processMessage)应该使用与event不同的参数名称,以免覆盖变量。

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();
}
© www.soinside.com 2019 - 2024. All rights reserved.