Office js 对话框API';Messages父对象不使用OWA

Office js 对话框API';Messages父对象不使用OWA,office-js,outlook-web-addins,Office Js,Outlook Web Addins,我正在将Office Javascript API用于Outlook加载项。我正在运行outlook-web-16.01(https://outlook.live.com/owa/) 我可以通过调用获取对话框弹出窗口。但是调用不会导致在父页面上触发DialogMessageReceived。我在同一个域上运行parent和dialog 但是,手动关闭对话框会在父级上触发DialogEventReceived,并使用12006 我还注意到,加载后,JS控制台上的对话框出现了此错误,但不确定是否相关

我正在将Office Javascript API用于Outlook加载项。我正在运行outlook-web-16.01(
https://outlook.live.com/owa/

我可以通过调用获取对话框弹出窗口。但是调用不会导致在父页面上触发
DialogMessageReceived
。我在同一个域上运行parent和dialog

但是,手动关闭对话框会在父级上触发
DialogEventReceived
,并使用
12006

我还注意到,加载后,JS控制台上的对话框出现了此错误,但不确定是否相关:

无法在
'DOMWindow'
上执行
'postMessage'
:提供的目标源(
'https://outlook.live.com“
)与收件人窗口的来源不匹配(
“MyOrigin”

我在用电脑

在复制自的父页面上启动对话框的我的代码

函数对话框回调(asyncResult){
如果(asyncResult.status==“失败”){
//除了一般的系统错误外,还有3个特定的错误
//displayDialogAsync,您可以单独处理。
开关(asyncResult.error.code){
案例12004:
log(“域不受信任”);
打破
案例12005:
console.log(“需要HTTPS”);
打破
案例12007:
log(“已经打开了一个对话框”);
打破
违约:
log(asyncResult.error.message);
打破
}
}
否则{
dialog=asyncResult.value;
/*消息由开发人员使用office.context.ui.messageParent(…)从对话框以编程方式发送*/
dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived,messageHandler);
/*平台发送事件以响应用户操作或错误。例如,通过“x”按钮关闭对话框*/
addEventHandler(Microsoft.Office.WebExtension.EventType.DialogEventReceived,eventHandler);
log(`handler registered`);
}
}
函数messageHandler(arg){
log(`handler called`);
dialog.close();
控制台日志(参数消息);
}
函数eventHandler(arg){
//除一般系统错误外,还有2个特定错误
//还有一个可以单独处理的事件。
开关(参数错误){
案例12002:
log(“无法加载URL,没有这样的页面或错误的URL语法”);
打破
案例12003:
log(“需要HTTPS”);
打破
案例12006:
//对话框关闭,通常是因为用户按下了X按钮。
console.log(“用户关闭的对话框”);
打破
违约:
log(“对话框窗口中未定义的错误”);
打破
}
}
var dialogUrl='MyOrigin/outlook/function file/dialog.html';
Office.context.ui.displayDialogAsync(dialogUrl,{height:50,width:50},dialogCallback);

对于HTML对话框,我的操作与之完全相同。

调试Microsoft Office库后,我发现了问题。 为了使消息正常工作,清单文件中的URL应以https为前缀://

我一更新我的清单,它就开始工作了

只需确保AppDomains中的URL前缀为https://

  <AppDomains>
    <AppDomain>https://app.polarcrm.com</AppDomain>
    <AppDomain>https://localhost:44321</AppDomain>
  </AppDomains>


您使用哪个浏览器来复制此内容?是否为对话框调用office.initialize?是否已解决此问题?我的建议是将您的所有域添加到清单文件的允许列表中。@Outlook加载项团队-MSFT:您能确认一下吗。2019年1月,我仍然面临着这个问题。@好奇的探险家:我们还没能重新开始。您能否提供有关复制的更多详细信息:例如:URL是否在清单中的允许列表中,是否在对话框和加载项中使用相同的URL,您正在使用的浏览器,您看到的错误,要复制的代码片段?在将DisplayInFrame对话框设置更改为false后,我的加载项对话框也有类似的问题。当DisplayInFrame为true时,对messageParent的调用成功。不幸的是,我的应用程序需要一个非iframe对话框。