Office.context.ui.messageParent无法与Outlook Online(Web)中的主机回话

时间:2018-09-12 06:05:00

标签: outlook outlook-addin

我正在尝试构建Outlook插件,并在Outlook Online(网络)上对其进行了测试,但是,“ Office.context.ui.messageParent ”无法与主机进行通话。

>

在主机页面中,它在以下代码下运行以供用户登录(我将AzureAD SSO用于登录用户)

var fullUrl = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '') + "/AzureAD/Login";
Office.context.ui.displayDialogAsync(fullUrl, { height: 60, width: 60, }, function (result) {
          var dialog = result.value;
          dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, processMessage);
});

function processMessage(arg) {
        var resp = JSON.parse(arg.message);
        console.log("Message received: " + JSON.stringify(resp));    
}

它正确显示了具有AzureAD权限的对话框,用户表示同意,此后,该对话框应该通过使用以下代码(在对话框中)与主机进行对话:

Office.initialize = function (reason) {
  $(document).ready(function () {            
    Office.context.ui.messageParent(true);               
  });
};

但是,主机不能在 processMessage 函数中获得任何消息。

但是,对于我的Word Online的Word加载项,相同的代码也可以正常工作。

我还检查了DialogAPI文档https://docs.microsoft.com/javascript/api/office/office.ui?product=outlook&view=office-js#displaydialogasync-startaddress--options--callback-

它提到:“ 在Word,Excel或PowerPoint加载项的DialogApi要求集中,对于Outlook的邮箱要求1.4中可以使用此方法。”

我确实在清单文件中放入了1.6。

<Hosts>
  <Host Name="Mailbox" />
</Hosts>
<Requirements>
  <Sets>
    <Set Name="Mailbox" MinVersion="1.6" />
  </Sets>
</Requirements>

还是没有运气,有什么主意吗?

谢谢

0 个答案:

没有答案