【问题标题】:Opening a modal using dialog API in Outlook 365 shows a "new window" alert在 Outlook 365 中使用对话框 API 打开模式会显示“新窗口”警报
【发布时间】:2019-02-26 16:33:32
【问题描述】:

我正在我的新 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();
                });
            }
        );
    })
};

【问题讨论】:

    标签: login modal-dialog office365 outlook-addin office-js


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      这是设计使然。如果您尝试打开的页面可以在 iframe 中打开,则应设置 displayInIFrame: false(默认值)。

      【讨论】:

      • 感谢您的提示。我回复了下面的另一个建议,但我想知道您是否知道这可能不起作用的任何其他原因? (我用一些代码更新了问题)
      【解决方案3】:

      如果对话框将在任何时候重定向到无法在 iframe 中打开的页面,则不应使用 displayInIframe: true

      例如,许多流行的网络服务(例如 Google 和 Microsoft 帐户)的登录页面无法在 iframe 中打开。

      【讨论】:

      • 感谢您的建议。我检查了,我们确实设置了displayInFrame:false(如果你什么都不通过,这是默认值)。事实上,如果我将它设置为true,由于安全限制,登录 iframe 甚至都不会加载。出现此警报的其他可能原因是什么?
      猜你喜欢
      • 2013-12-10
      • 2019-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多