Office Dialog API将消息发送到子对话框

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我们希望使用Dialog API进行一些更适合更大工作区域的额外操作。我们已经能够通过API从dialog(Office.context.ui.messageParent)中向父级发送消息,但是我们也希望能够直接向对话框发送消息,例如sendMessage函数,例如:

var dialog;
Office.context.ui.displayDialogAsync('https://myDomain/myDialog.html', function (asyncResult) {
    if (asyncResult.status === "failed") { 
        showNotification(asynceResult.error.code = ": " + asyncResult.error.message); 
    } else {
        dialog = asyncResult.value;
        dialog.addEventHandler(Office.EventType.DialogMessageReceived, processMessage);
        dialog.sendMessage({ /* my payload */ }); //???
    }
}); 

有几种方法可以将数据从父级传递给子级:

  1. 请求参数: displayDialogAsync(myUrl + "?myMessage=...", function...)
  2. localStorage(如果在同一个域上): localStorage.setItem("DIALOG_MESSAGE", myMessage)

但是,这两者都只能用于初始化对话框,它们不能提供一种很好的异步消息传递方式。

提问于
用户回答回答于

这是一个受欢迎的请求(也是一个好主意),但它尚未得到支持。请转到Office Dev用户语音并在那里投票“改进自定义对话框”建议或创建自己的新建议。

用户回答回答于

您可以在使用前在parrent中使用它displayDialog

localStorage.setItem("clientID", "15963ac5-314f-4d9b-b5a1-ccb2f1aea248");

然后在您的JavaScript文件中:

var clientID = localStorage.getItem("clientID");

扫码关注云+社区

领取腾讯云代金券