我正在我的新Outlook 365加载项中实现登录系统,但是当用户尝试打开模态登录窗口时,显示警告“{Addin name}想要显示新窗口”的问题。其他Outlook 365加载项中不会发生这种情况。
在文档之后没有提到任何限制:( https://docs.microsoft.com/en-us/office/dev/add-ins/develop/dialog-api-in-office-add-ins)但它仍然显示,你可以看到:
如果出现问题,我将我的域名包含在清单中的“AppDomains”中,但问题仍然存在。
任何建议,将不胜感激。
更新:这是相关的代码:
export const modalLogin = () => dispatch => {
return new Promise(resolve => {
Office.context.ui.displayDialogAsync(urls.login, {height: 50, width: 50},
function (asyncResult) {
let dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, (arg) => {
let messageFromDialog = JSON.parse(arg.message);
if (messageFromDialog.outcome === "success") {
dispatch(requestDone(resources.login, messageFromDialog.response));
} else {
dispatch(requestError(resources.login, messageFromDialog.response));
}
dialog.close();
resolve();
});
}
);
})
};
只需在promptBeforeOpen:false
中设置displayDialogAsync
。
这是设计的。如果您尝试打开的页面可以在iframe中打开,则应设置displayInIFrame:false(默认值)。
如果对话框在任何时候重定向到无法在iframe中打开的页面,则不应使用displayInIframe: true
。
例如,许多流行的Web服务(例如Google和Microsoft帐户)的登录页面无法在iframe中打开。