使用外接程序命令执行功能显示对话框

时间:2018-06-19 11:49:53

标签: javascript office-js outlook-web-addins

当前,我正在使用Execute Function加载项命令来显示一个对话框,其中显示了我们的自定义页面。我希望该对话框只能由用户手动关闭,但是我遇到了一些不同的情况。

首先,我使用以下代码显示对话框:

this.openDialog = function(event) {
  var dlgOptions = { height: 80, width: 80, displayInIframe: true };
  var myUrl = "someURL";

  var callback = function(asyncResult) {
    if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) {
      event.completed();
      return;
    }
    var dialog = asyncResult.value;
    dialog.addEventHandler(Office.EventType.DialogEventReceived, function(dialogEvent) {
      event.completed();
    });
  };
  Office.context.ui.displayDialogAsync(myUrl, dlgOptions, callback);
};

我在对话框中加载了自定义页面,但也遇到了一些问题:

  1. 在OWA上,对话框将在5分钟后挂起
  2. 在桌面客户端上,该对话框会在5分钟后自动关闭

我发现了这篇文章:Office.js dialog makes Outlook hang after 5 minutes,但这不是我想要的。我只需要我的对话框存在,直到用户关闭它为止,所以我尝试了另一种方法:

this.openDialog = function(event) {
  var dlgOptions = { height: 80, width: 80, displayInIframe: true };
  var myUrl = "someURL";

  var callback = function(asyncResult) {
    event.completed();
  };
  Office.context.ui.displayDialogAsync(myUrl, dlgOptions, callback);
};

这次,它可以在桌面客户端上按预期工作,但是对于OWA,对话框在打开后立即挂起。

如何使对话框在两种平台上都能正常工作?

0 个答案:

没有答案