office-js - 如何使用 Outlook 2016 桌面客户端使用 OfficeJS API 的对话框 API

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

我开发了一个使用 OfficeJS API 并希望在应用程序中实现 OAuth 的 Outlook 插件,也
API Documnetation说 Outlook 2016(桌面)支持要求集 1.1、1.2、1.3 和 1.4,但在我的情况下,它保持沉默甚至不会引发错误。
在运行工作时dialog api sample for word add-in我正进入(状态
JavaScript 运行时错误: Unable to get property 'displayDialogAsync' of undefined or null reference .

我正在使用 Microsoft Office Professional Plus 2016。

我编写的用于启动对话框的代码如下:

dialogTest() {
        const url = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=....";
        Office.context.ui.displayDialogAsync(url, { width: 15, height: 27, requireHTTPS: true }, function (asyncResult) {
            if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) {
                // TODO: Handle error.
                return;
            }

            // Get the dialog and register event handlers.
            var dialog = asyncResult.value;
            dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, function (asyncResult) {
                if (asyncResult.type !== Microsoft.Office.WebExtension.EventType.DialogMessageReceived) {
                    // TODO: Handle unknown message.
                    return;
                }

                // Parse the message.
                var data = JSON.parse(asyncResult.message);
                console.log('Hello #Office365Dev', data.name);

                // TODO: Do something with the data.

                // We got our data, time to close the dialog.
                dialog.close();
            });
        });
    }

最佳答案

看起来像 ui Office.context 的成员未定义或 Office.js未正确加载。尝试先查看这些:

  • Office.js javascript加载正确?
  • 是否 Office.initialize回调在你做某事之前设置和执行?
  • 您的 Outlook 桌面 2016 版本是什么?

  • 编辑: 2016 年 6 月与微软工程师讨论(这不是官方声明)。 dialogAPI 支持的版本是 Office for Windows Desktop 2016(内部版本 16.0.6741.0000 或更高版本)。这可能会改变。
  • 这段代码的结果是什么var result = Office.context.requirements.isSetSupported('DialogAPI', '1.4');
  • 关于office-js - 如何使用 Outlook 2016 桌面客户端使用 OfficeJS API 的对话框 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259110/

    相关文章:

    office-js - Outlook/Word 插件 : How to highlight a part of the text (range)

    javascript - Outlook-addin 无法与从 GitHub 下载的离线 office.js 一起使用

    office-addins - 如何在 Outlook Web App (OWA)、Outlook 2016 Mac 和 Windows 中的 Outlook 加载项中显示垂直 Pane

    javascript - 如何使用 Office-js-helper 的身份验证获取用户信息?

    excel - 如何使用 Office JS API 对 Excel 中的行或列进行分组

    javascript - Visual Studio 2017 调试器在 Office Excel 加载项 Typescript 转换后无法正常工作

    office-js - 仅适用于 Word 桌面版(win + macOS)的 Word 插件。如何在线处理Word?尤其是在验证方面

    office-js - 有没有办法为 excel 插件请求特定的 webview 版本?

    outlook - 加载项无法启动

    excel - Office.js javascript API中基于C#的excel函数可能吗?