우리는 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 ---그것은 그 대화는 이제 메시지 부모가 나타납니다. 불행히도 여전히 대화 상자를 닫아도 이벤트가 추가 기능으로 보내지지 않도록하는 뛰어난 버그가 있습니다.
인터넷 배포 버전의 추가 기능을 가리키는 매니페스트를 공유 할 수 있으면 다시 작성하기가 더 쉽습니다. –