2016-12-21 15 views
2

Я разработал надстройку надстройки, которая с использованием API OfficeJS и реализует OAuth в приложении, а также API Documnetation говорит, что Outlook 2016 (Desktop) поддерживает требования 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.Как получить рабочий диалог API OfficeJS с настольным клиентом Outlook 2016

Я использую Microsoft Office профессиональный плюс 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(); 
      }); 
     }); 
    } 

ответ

2

Похоже ui член Office.context не определен или Office.js загружена неправильно. Попытайтесь рассмотреть их первым:

  • Действительно ли Office.js javascript загружен правильно?
  • Office.initialize Обратный звонок хорошо установлен и выполнен, прежде чем что-то делать?
  • Какова версия вашего Outlook Desktop 2016?

Edit: обсуждает с инженером Microsoft в июне 2016 года (это не официальное заявление). Поддерживаемая сборка для dialogAPI - это Office для Windows Desktop 2016 (сборка 16.0.6741.0000 или выше). Это может измениться.

  • Что является результатом этой части кода var result = Office.context.requirements.isSetSupported('DialogAPI', '1.4');
+0

Офис JS нагруженной правильно также Office.initialize обратного вызова был выполнен правильно, потому что все другие операции, которые работают на месте. Я вызываю функцию 'dialogTest()' одним нажатием кнопки. Моя настольная версия для офиса: ** Word 2016 MSO (16.0.4266.1001) ** Я установил ** Office Professional Plus 2016 ** через ISO, загруженный с официальной страницы загрузки Microsoft. – Hitendra

+0

'var result = Office.context.requirements.isSetSupported ('DialogAPI', '1.1');' предоставление 'false' – Hitendra

+0

Я думаю, что ваша версия Office слишком старая и не содержит последних изменений, включая' dialogAPI' (см. мой обновленный ответ). Я думаю, вы должны установить с помощью Click To Run, чтобы получить все последние функции. –