2017-02-09 1 views
1

우리는 Outlook 추가 기능에서 인증을 위해 대화 상자를 사용합니다. 애드온에 논리가있어 먼저 대화 API 지원을 확인한 다음 추가 기능이 액자인지 여부를 확인합니다.이 경우 추가 대신 인증을위한 새 창이 열립니다. 최근에 대화 API가 OWA에 불을 붙 였고 우리에게 몇 가지 문제가 발생했습니다.OWA : 대화 상자 API 지원

우리는 인증 (우리는 ADAL.js 사용)을 수행하고 Office를 초기화하는 순서와 관련된 몇 가지 이전 문제점을 수정했습니다. 그러나 일단 우리가 그것들을 지나치면 대화 상자가 Office.context.ui.messageParent을 사용하여 추가 기능과 다시 통신 할 수있는 것처럼 보이지 않습니다.

추가 기능이 Microsoft.Office.WebExtension.EventType.DialogEventReceived 이벤트에 가입하더라도 대화 상자가 닫힐 때 해당 이벤트가 시작되지 않습니다. 일반적으로 대화 상자를 닫으면 오류 코드 12006이 반환됩니다.

나는 대화 상자를 단독으로 열어서 OWA의 추가 기능과 통신 할 수 없다는 것을 확인한 간단한 Outlook 추가 기능을 만들었습니다. 아래 코드를 포함 시켰습니다.

코드 추가 기능 :

Office.initialize = function (reason) { 
    $(document).ready(function() { 
     var resultArea = $("span"); 
     $("button").click(function() { 
      resultArea.text("Opening dialog"); 
      Office.context.ui.displayDialogAsync(
       window.location.origin + "/TestAddin/Dialog.html", 
       { height: 75, width: 25 }, 
       function (asyncResult) { 
        if (asyncResult.status === Office.AsyncResultStatus.Succeeded) { 
         var dialog = asyncResult.value; 
         dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogMessageReceived, function handleAuthDialogMessage(message) { 
          dialog.close(); 
          resultArea.text(message); 
         }); 
         dialog.addEventHandler(Microsoft.Office.WebExtension.EventType.DialogEventReceived, function handleAuthDialogMessage(message) { 
          resultArea.text("Event encountered"); 
         }); 
        } else { 
         resultArea.text("Dialog failed"); 
        } 
       }); 
     }); 
    }) 
}; 

대화 코드 :

지금은
Office.initialize = function (reason) { 
    $(document).ready(function() { 
     Office.context.ui.messageParent("dialog-opened"); 
    }) 
}; 

나는 조정 한 우리가 (프레임 경우 추가 먼저 확인에 볼 수있는 경우를의 대화 상자 API를 확인하거나 사용하기 전에 인증을위한 새 창이 열립니다. 이 방법을 사용하면 생산 버그를 수정하고 OWA 인증을 다시 사용할 수 있습니다. 그러나 일단 작업 중이거나 추가 기능이 고정되면 대화 상자를 받아보고 싶습니다.

누구든지이 문제점을 이미 알고 있습니까?

--- 업데이트 2/22 ---

그것은 그 대화는 이제 메시지 부모가 나타납니다. 불행히도 여전히 대화 상자를 닫아도 이벤트가 추가 기능으로 보내지지 않도록하는 뛰어난 버그가 있습니다.

+0

인터넷 배포 버전의 추가 기능을 가리키는 매니페스트를 공유 할 수 있으면 다시 작성하기가 더 쉽습니다. –

답변

0

메시지 상위 문제를 재현 할 수 없습니다.

대화 상자가 닫힐 때 DialogEventReceived 이벤트가 실행되지 않는다는 것에 관해서는 - 이것은 우리가 이미 문제를 해결하려고 노력하고있는 알려진 문제이지만보고 해 주셔서 감사합니다!

+0

사용자가 X를 클릭하면 이벤트가 닫히지 만, 대화 상자 내의 컨트롤에는 포커스가있는 동안 ESC를 누르지 않으면 이벤트가 표시되지 않습니다. 그 부분이 알려진 문제입니까? – lgaud

+0

@Igaud 체크 아웃 https://stackoverflow.com/questions/46037829/no-event-is-fired-when-closing-a-dialog-via-esc 이것은 여전히 ​​문제입니다. –